diff --git a/ToolCollection/ClassPasswordCrypto.vb b/ToolCollection/ClassPasswordCrypto.vb new file mode 100644 index 0000000..9eb3caa --- /dev/null +++ b/ToolCollection/ClassPasswordCrypto.vb @@ -0,0 +1,128 @@ +Imports System.Security.Cryptography +Imports System.Text + +Public Class ClassPasswordCrypto + + Private _password As String + + ' ++++++++++++++++++++++++++++++++++++++++++++++ Properties ++++++++++++++++++++++++++++++++++++++++++++++ + + ''' + ''' Liefert das Passwort zum Entschlüsseln des Lizenzschlüssels + ''' + ''' + ''' + ''' + Public ReadOnly Property Password() As String + Get + Return Me._password + End Get + End Property + + ' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++ + + ''' + ''' Konstruktor für den Lizenz-Manager ohne License load + ''' + ''' Passwort zum Entschlüsseln des Lizenzkeys + ''' + Sub New(ByVal password As String) + Me._password = password + End Sub + + ''' + ''' Codiert eine Zeichenkette + ''' + ''' zu verschlüsselnde Zeichenkette + ''' das zur Verschlüsselung verwendete Passwort + ''' liefert eine verschlüsselte Zeichenkette + ''' + Public Function EncodePassword(ByVal str As String, ByVal password As String) + Dim rd As New RijndaelManaged + + Dim md5 As New MD5CryptoServiceProvider + Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(password)) + + md5.Clear() + rd.Key = key + rd.GenerateIV() + + Dim iv() As Byte = rd.IV + Dim ms As New IO.MemoryStream + + ms.Write(iv, 0, iv.Length) + + Dim cs As New CryptoStream(ms, rd.CreateEncryptor, CryptoStreamMode.Write) + Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(str) + + cs.Write(data, 0, data.Length) + cs.FlushFinalBlock() + + Dim encdata() As Byte = ms.ToArray() + Dim result As String = Convert.ToBase64String(encdata) + cs.Close() + rd.Clear() + + Return result + End Function + + ''' + ''' Decodiert den verschlüsselten Lizenzkey + ''' + ''' verschlüsselter Lizenzkey + ''' + ''' + Public Function DecodePassword(ByVal licenseCodeStr As String) + Try + Dim rd As New RijndaelManaged + Dim rijndaelIvLength As Integer = 16 + Dim md5 As New MD5CryptoServiceProvider + Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(Me._password)) + + md5.Clear() + + Dim encdata() As Byte + Dim ms + Dim iv(15) As Byte + Dim cs As CryptoStream + Dim data() As Byte + + Try + encdata = Convert.FromBase64String(licenseCodeStr) + ms = New IO.MemoryStream(encdata) + + ms.Read(iv, 0, rijndaelIvLength) + rd.IV = iv + rd.Key = key + + cs = New CryptoStream(ms, rd.CreateDecryptor, CryptoStreamMode.Read) + + ReDim data(ms.Length - rijndaelIvLength) + Catch ex As Exception + Return Nothing + End Try + + Dim i As Integer = 0 + + Try + + i = cs.Read(data, 0, data.Length) + Dim result As String = System.Text.Encoding.UTF8.GetString(data, 0, i) + + cs.Close() + rd.Clear() + Return result + + Catch ex As Exception + + 'MsgBox("Falsches Passwort") + Return Nothing + + End Try + Catch ex As Exception + End Try + 'MsgBox("Falsches Passwort") + Return Nothing + End Function + +End Class diff --git a/ToolCollection/My Project/licenses.licx b/ToolCollection/My Project/licenses.licx new file mode 100644 index 0000000..f68392f --- /dev/null +++ b/ToolCollection/My Project/licenses.licx @@ -0,0 +1,3 @@ +DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit, DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a +DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a diff --git a/packages/NLog.5.0.5/.signature.p7s b/packages/NLog.5.0.5/.signature.p7s new file mode 100644 index 0000000..276707d Binary files /dev/null and b/packages/NLog.5.0.5/.signature.p7s differ diff --git a/packages/NLog.5.0.5/N.png b/packages/NLog.5.0.5/N.png new file mode 100644 index 0000000..4b8869e Binary files /dev/null and b/packages/NLog.5.0.5/N.png differ diff --git a/packages/NLog.5.0.5/NLog.5.0.5.nupkg b/packages/NLog.5.0.5/NLog.5.0.5.nupkg new file mode 100644 index 0000000..6e947df Binary files /dev/null and b/packages/NLog.5.0.5/NLog.5.0.5.nupkg differ diff --git a/packages/NLog.5.0.5/lib/net35/NLog.dll b/packages/NLog.5.0.5/lib/net35/NLog.dll new file mode 100644 index 0000000..a83dd44 Binary files /dev/null and b/packages/NLog.5.0.5/lib/net35/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/net35/NLog.xml b/packages/NLog.5.0.5/lib/net35/NLog.xml new file mode 100644 index 0000000..d4549f1 --- /dev/null +++ b/packages/NLog.5.0.5/lib/net35/NLog.xml @@ -0,0 +1,27740 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Class for providing Nlog configuration xml code from app.config + to + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Sends a QUIT message to the SMTP server, gracefully ends the TCP connection, and releases all resources used by the current instance of the class. + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Application setting. + + + Use this layout renderer to insert the value of an application setting + stored in the application's App.config or Web.config file. + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + + + + The AppSetting item-name + + + + + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using AggregateException.Flatten() + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Append rendered to + + append to this + event for rendering + append if not null + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/NLog.5.0.5/lib/net45/NLog.dll b/packages/NLog.5.0.5/lib/net45/NLog.dll new file mode 100644 index 0000000..c3d0381 Binary files /dev/null and b/packages/NLog.5.0.5/lib/net45/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/net45/NLog.xml b/packages/NLog.5.0.5/lib/net45/NLog.xml new file mode 100644 index 0000000..2786bbb --- /dev/null +++ b/packages/NLog.5.0.5/lib/net45/NLog.xml @@ -0,0 +1,28225 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Class for providing Nlog configuration xml code from app.config + to + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Application setting. + + + Use this layout renderer to insert the value of an application setting + stored in the application's App.config or Web.config file. + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + + + + The AppSetting item-name + + + + + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Append rendered to + + append to this + event for rendering + append if not null + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/NLog.5.0.5/lib/net46/NLog.dll b/packages/NLog.5.0.5/lib/net46/NLog.dll new file mode 100644 index 0000000..c33852d Binary files /dev/null and b/packages/NLog.5.0.5/lib/net46/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/net46/NLog.xml b/packages/NLog.5.0.5/lib/net46/NLog.xml new file mode 100644 index 0000000..0de84d3 --- /dev/null +++ b/packages/NLog.5.0.5/lib/net46/NLog.xml @@ -0,0 +1,28265 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Class for providing Nlog configuration xml code from app.config + to + + + + + Overriding base implementation to just store + of the relevant app.config section. + + The XmlReader that reads from the configuration file. + true to serialize only the collection key properties; otherwise, false. + + + + Override base implementation to return a object + for + instead of the instance. + + + A instance, that has been deserialized from app.config. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Gets the default object by parsing + the application configuration file (app.exe.config). + + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Interface for the wrapper around System.Configuration.ConfigurationManager. + + + + + Gets the wrapper around ConfigurationManager.AppSettings. + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + Internal configuration manager used to read .NET configuration files. + Just a wrapper around the BCL ConfigurationManager, but used to enable + unit testing. + + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Provides a multi process-safe atomic file append while + keeping the files open. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + Creates or opens a file in a special mode, so that writes are automatically + as atomic writes at the file end. + See also "UnixMultiProcessFileAppender" which does a similar job on *nix platforms. + + File to create or open + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Gets a value indicating whether current runtime is Mono-based + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Application setting. + + + Use this layout renderer to insert the value of an application setting + stored in the application's App.config or Web.config file. + + + ${appsetting:item=mysetting:default=mydefault} - produces "mydefault" if no appsetting + + + + + The AppSetting item-name + + + + + + The AppSetting item-name + + + + + The default value to render if the AppSetting value is null. + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Writes log message to the Event Log. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Max size in characters (limitation of the EventLog API). + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the machine on which Event Log service is running. + + + + + + Gets or sets the layout that renders event ID. + + + + + + Gets or sets the layout that renders event Category. + + + + + + Optional entry type. When not set, or when not convertible to then determined by + + + + + + Gets or sets the value to be used as the event Source. + + + By default this is the friendly name of the current AppDomain. + + + + + + Gets or sets the name of the Event Log to write to. This can be System, Application or any user-defined name. + + + + + + Gets or sets the message length limit to write to the Event Log. + + MaxMessageLength cannot be zero or negative + + + + + Gets or sets the maximum Event log size in kilobytes. + + + MaxKilobytes cannot be less than 64 or greater than 4194240 or not a multiple of 64. + If null, the value will not be specified while creating the Event log. + + + + + + Gets or sets the action to take if the message is larger than the option. + + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + + + + + + + Get the entry type for logging the message. + + The logging event - for rendering the + + + + Get the source, if and only if the source is fixed. + + null when not + Internal for unit tests + + + + (re-)create an event source, if it isn't there. Works only with fixed source names. + + The source name. If source is not fixed (see , then pass null or . + always throw an Exception when there is an error + + + + A wrapper for Windows event log. + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + A wrapper for the property . + + + + + Indicates whether an event log instance is associated. + + + + + A wrapper for the method . + + + + + Creates a new association with an instance of the event log. + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + A wrapper for the static method . + + + + + The implementation of , that uses Windows . + + + + + Creates a new association with an instance of Windows . + + + + + Action that should be taken if the message is greater than + the max message size allowed by the Event Log. + + + + + Truncate the message before writing to the Event Log. + + + + + Split the message and write multiple entries to the Event Log. + + + + + Discard of the message. It will not be written to the Event Log. + + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the mailSettings/smtp configuration from app.config in cases when we need those configuration. + E.g when UseSystemNetMailSettings is enabled and we need to read the From attribute from system.net/mailSettings/smtp + + Internal for mocking + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Append rendered to + + append to this + event for rendering + append if not null + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/NLog.5.0.5/lib/netstandard1.3/NLog.dll b/packages/NLog.5.0.5/lib/netstandard1.3/NLog.dll new file mode 100644 index 0000000..8f192ea Binary files /dev/null and b/packages/NLog.5.0.5/lib/netstandard1.3/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/netstandard1.3/NLog.xml b/packages/NLog.5.0.5/lib/netstandard1.3/NLog.xml new file mode 100644 index 0000000..66d733b --- /dev/null +++ b/packages/NLog.5.0.5/lib/netstandard1.3/NLog.xml @@ -0,0 +1,26133 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + Initializes a new instance of the class. + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/NLog.5.0.5/lib/netstandard1.5/NLog.dll b/packages/NLog.5.0.5/lib/netstandard1.5/NLog.dll new file mode 100644 index 0000000..c954213 Binary files /dev/null and b/packages/NLog.5.0.5/lib/netstandard1.5/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/netstandard1.5/NLog.xml b/packages/NLog.5.0.5/lib/netstandard1.5/NLog.xml new file mode 100644 index 0000000..3a9ce87 --- /dev/null +++ b/packages/NLog.5.0.5/lib/netstandard1.5/NLog.xml @@ -0,0 +1,27088 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + Initializes a new instance of the class. + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Find name of method on stracktrace. + + Full stracktrace + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/NLog.5.0.5/lib/netstandard2.0/NLog.dll b/packages/NLog.5.0.5/lib/netstandard2.0/NLog.dll new file mode 100644 index 0000000..2785094 Binary files /dev/null and b/packages/NLog.5.0.5/lib/netstandard2.0/NLog.dll differ diff --git a/packages/NLog.5.0.5/lib/netstandard2.0/NLog.xml b/packages/NLog.5.0.5/lib/netstandard2.0/NLog.xml new file mode 100644 index 0000000..7f4d81a --- /dev/null +++ b/packages/NLog.5.0.5/lib/netstandard2.0/NLog.xml @@ -0,0 +1,27885 @@ + + + + NLog + + + + + Interface for serialization of object values into JSON format + + + + + Serialization of an object into JSON format. + + The object to serialize to JSON. + Output destination. + Serialize succeeded (true/false) + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format.s + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Logger with only generic methods (passing 'LogLevel' to methods) and core properties. + + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + An exception to be logged. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + A to be written. + An exception to be logged. + This method was marked as obsolete before NLog 4.3.11 and it may be removed in a future release. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Provides an interface to execute System.Actions without surfacing any exceptions raised for that action. + + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + A task that completes in the state when completes. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Render a message template property to a string + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Support implementation of + + + + + + + + + + + + + + + + + Mark a parameter of a method for message templating + + + + + Specifies which parameter of an annotated method should be treated as message-template-string + + + + + The name of the parameter that should be as treated as message-template-string + + + + + Asynchronous continuation delegate - function invoked at the end of asynchronous + processing. + + Exception during asynchronous processing or null if no exception + was thrown. + + + + Helpers for asynchronous operations. + + + + + Iterates over all items in the given collection and runs the specified action + in sequence (each action executes only after the preceding one has completed without an error). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Repeats the specified asynchronous action multiple times and invokes asynchronous continuation at the end. + + The repeat count. + The asynchronous continuation to invoke at the end. + The action to invoke. + + + + Modifies the continuation by pre-pending given action to execute just before it. + + The async continuation. + The action to pre-pend. + Continuation which will execute the given action before forwarding to the actual continuation. + + + + Attaches a timeout to a continuation which will invoke the continuation when the specified + timeout has elapsed. + + The asynchronous continuation. + The timeout. + Wrapped continuation. + + + + Iterates over all items in the given collection and runs the specified action + in parallel (each action executes on a thread from thread pool). + + Type of each item. + The items to iterate. + The asynchronous continuation to invoke once all items + have been iterated. + The action to invoke for each item. + + + + Runs the specified asynchronous action synchronously (blocks until the continuation has + been invoked). + + The action. + + Using this method is not recommended because it will block the calling thread. + + + + + Wraps the continuation with a guard which will only make sure that the continuation function + is invoked only once. + + The asynchronous continuation. + Wrapped asynchronous continuation. + + + + Gets the combined exception from all exceptions in the list. + + The exceptions. + Combined exception or null if no exception was thrown. + + + + Disposes the Timer, and waits for it to leave the Timer-callback-method + + The Timer object to dispose + Timeout to wait (TimeSpan.Zero means dispose without waiting) + Timer disposed within timeout (true/false) + + + + Asynchronous action. + + Continuation to be invoked at the end of action. + + + + Asynchronous action with one argument. + + Type of the argument. + Argument to the action. + Continuation to be invoked at the end of action. + + + + Represents the logging event with asynchronous continuation. + + + + + Initializes a new instance of the struct. + + The log event. + The continuation. + + + + Gets the log event. + + + + + Gets the continuation. + + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + Implements the operator ==. + + The event info1. + The event info2. + The result of the operator. + + + + + + + + + + + + + String Conversion Helpers + + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + Output value + Default value + Returns false if the input value could not be parsed + + + + Converts input string value into . Parsing is case-insensitive. + + Input value + The type of the enum + Output value. Null if parse failed + + + + Converts the string representation of the name or numeric value of one or more enumerated constants to an equivalent enumerated object. A parameter specifies whether the operation is case-sensitive. The return value indicates whether the conversion succeeded. + + The enumeration type to which to convert value. + The string representation of the enumeration name or underlying value to convert. + true to ignore case; false to consider case. + When this method returns, result contains an object of type TEnum whose value is represented by value if the parse operation succeeds. If the parse operation fails, result contains the default value of the underlying type of TEnum. Note that this value need not be a member of the TEnum enumeration. This parameter is passed uninitialized. + true if the value parameter was converted successfully; otherwise, false. + Wrapper because Enum.TryParse is not present in .net 3.5 + + + + Enum.TryParse implementation for .net 3.5 + + + + Don't uses reflection + + + + Enables to extract extra context details for + + + + + Name of context + + + + + The current LogFactory next to LogManager + + + + + NLog internal logger. + + Writes to file, console or custom text writer (see ) + + + Don't use as that can lead to recursive calls - stackoverflow + + + + + Gets a value indicating whether internal log includes Trace messages. + + + + + Gets a value indicating whether internal log includes Debug messages. + + + + + Gets a value indicating whether internal log includes Info messages. + + + + + Gets a value indicating whether internal log includes Warn messages. + + + + + Gets a value indicating whether internal log includes Error messages. + + + + + Gets a value indicating whether internal log includes Fatal messages. + + + + + Logs the specified message without an at the Trace level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + Log message. + + + + Logs the specified message without an at the Trace level. + will be only called when logging is enabled for level Trace. + + Function that returns the log message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Trace level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Trace level. + will be only called when logging is enabled for level Trace. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Debug level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Debug level. + + Log message. + + + + Logs the specified message without an at the Debug level. + will be only called when logging is enabled for level Debug. + + Function that returns the log message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Debug level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Debug level. + will be only called when logging is enabled for level Debug. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Info level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Info level. + + Log message. + + + + Logs the specified message without an at the Info level. + will be only called when logging is enabled for level Info. + + Function that returns the log message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Info level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Info level. + will be only called when logging is enabled for level Info. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Warn level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Warn level. + + Log message. + + + + Logs the specified message without an at the Warn level. + will be only called when logging is enabled for level Warn. + + Function that returns the log message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Warn level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Warn level. + will be only called when logging is enabled for level Warn. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Error level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Error level. + + Log message. + + + + Logs the specified message without an at the Error level. + will be only called when logging is enabled for level Error. + + Function that returns the log message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Error level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Error level. + will be only called when logging is enabled for level Error. + + Exception to be logged. + Function that returns the log message. + + + + Logs the specified message without an at the Fatal level. + + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Fatal level. + + Log message. + + + + Logs the specified message without an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Function that returns the log message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + Message which may include positional parameters. + Argument {0} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + + + + Logs the specified message without an at the Trace level. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + Message which may include positional parameters. + Argument {0} to the message. + Argument {1} to the message. + Argument {2} to the message. + + + + Logs the specified message with an at the Fatal level. + + Exception to be logged. + Log message. + + + + Logs the specified message with an at the Fatal level. + will be only called when logging is enabled for level Fatal. + + Exception to be logged. + Function that returns the log message. + + + + Set the config of the InternalLogger with defaults and config. + + + + + Gets or sets the minimal internal log level. + + If set to , then messages of the levels , and will be written. + + + + Gets or sets a value indicating whether internal messages should be written to the console output stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the console error stream. + + Your application must be a console application. + + + + Gets or sets a value indicating whether internal messages should be written to the .Trace + + + + + Gets or sets the file path of the internal log file. + + A value of value disables internal logging to a file. + + + + Gets or sets the text writer that will receive internal logs. + + + + + Event written to the internal log. + + + EventHandler will only be triggered for events, where severity matches the configured . + + Avoid using/calling NLog Logger-objects when handling these internal events, as it will lead to deadlock / stackoverflow. + + + + + Gets or sets a value indicating whether timestamp should be included in internal log output. + + + + + Is there an thrown when writing the message? + + + + + Logs the specified message without an at the specified level. + + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message without an at the specified level. + + Log level. + Log message. + + + + Logs the specified message without an at the specified level. + will be only called when logging is enabled for level . + + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + will be only called when logging is enabled for level . + + Exception to be logged. + Log level. + Function that returns the log message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Message which may include positional parameters. + Arguments to the message. + + + + Logs the specified message with an at the specified level. + + Exception to be logged. + Log level. + Log message. + + + + Write to internallogger. + + optional exception to be logged. + level + message + optional args for + + + + Create log line with timestamp, exception message etc (if configured) + + + + + Determine if logging should be avoided because of exception type. + + The exception to check. + true if logging should be avoided; otherwise, false. + + + + Determine if logging is enabled for given LogLevel + + The for the log event. + true if logging is enabled; otherwise, false. + + + + Determine if logging is enabled. + + true if logging is enabled; otherwise, false. + + + + Write internal messages to the log file defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the defined in . + + Message to write. + + Message will be logged only when the property is not null, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged only when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + Message to write. + + Message will be logged when the property is true, otherwise the + method has no effect. + + + + + Write internal messages to the . + + A message to write. + + Works when property set to true. + The is used in Debug and Release configuration. + The works only in Debug configuration and this is reason why is replaced by . + in DEBUG + + + + + Logs the assembly version and file version of the given Assembly. + + The assembly to log. + + + + A message has been written to the internal logger + + + + + The rendered message + + + + + The log level + + + + + The exception. Could be null. + + + + + The type that triggered this internal log event, for example the FileTarget. + This property is not always populated. + + + + + The context name that triggered this internal log event, for example the name of the Target. + This property is not always populated. + + + + + A cyclic buffer of object. + + + + + Initializes a new instance of the class. + + Buffer size. + Whether buffer should grow as it becomes full. + The maximum number of items that the buffer can grow to. + + + + Gets the capacity of the buffer + + + + + Gets the number of items in the buffer + + + + + Adds the specified log event to the buffer. + + Log event. + The number of items in the buffer. + + + + Gets the array of events accumulated in the buffer and clears the buffer as one atomic operation. + + Events in the buffer. + + + + Marks class as a log event Condition and assigns a name to it. + + + + + Initializes a new instance of the class. + + Condition method name. + + + + Marks the class as containing condition methods. + + + + + A bunch of utility methods (mostly predicates) which can be used in + condition expressions. Partially inspired by XPath 1.0. + + + + + Compares two values for equality. + + The first value. + The second value. + true when two objects are equal, false otherwise. + + + + Compares two strings for equality. + + The first string. + The second string. + Optional. If true, case is ignored; if false (default), case is significant. + true when two strings are equal, false otherwise. + + + + Gets or sets a value indicating whether the second string is a substring of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a substring of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a prefix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Gets or sets a value indicating whether the second string is a suffix of the first one. + + The first string. + The second string. + Optional. If true (default), case is ignored; if false, case is significant. + true when the second string is a prefix of the first string, false otherwise. + + + + Returns the length of a string. + + A string whose lengths is to be evaluated. + The length of the string. + + + + Indicates whether the specified regular expression finds a match in the specified input string. + + The string to search for a match. + The regular expression pattern to match. + A string consisting of the desired options for the test. The possible values are those of the separated by commas. + true if the regular expression finds a match; otherwise, false. + + + + + + + + + + + Relational operators used in conditions. + + + + + Equality (==). + + + + + Inequality (!=). + + + + + Less than (<). + + + + + Greater than (>). + + + + + Less than or equal (<=). + + + + + Greater than or equal (>=). + + + + + Exception during evaluation of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception during parsing of condition expression. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Condition and expression. + + + + + Initializes a new instance of the class. + + Left hand side of the AND expression. + Right hand side of the AND expression. + + + + Gets the left hand side of the AND expression. + + + + + Gets the right hand side of the AND expression. + + + + + Returns a string representation of this expression. + + A concatenated '(Left) and (Right)' string. + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the conjunction operator. + + + + Condition message expression (represented by the exception keyword). + + + + + + + + Evaluates the current . + + Evaluation context. + The object. + + + + Base class for representing nodes in condition expression trees. + + Documentation on NLog Wiki + + + + Converts condition text to a condition expression tree. + + Condition text to be converted. + Condition expression tree. + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Returns a string representation of the expression. + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition layout expression (represented by a string literal + with embedded ${}). + + + + + Initializes a new instance of the class. + + The layout. + + + + Gets the layout. + + The layout. + + + + + + + Evaluates the expression by rendering the formatted output from + the + + Evaluation context. + The output rendered from the layout. + + + + Condition level expression (represented by the level keyword). + + + + + + + + Evaluates to the current log level. + + Evaluation context. + The object representing current log level. + + + + Condition literal expression (numeric, LogLevel.XXX, true or false). + + + + + Initializes a new instance of the class. + + Literal value. + + + + Gets the literal value. + + The literal value. + + + + + + + Evaluates the expression. + + Evaluation context. Ignored. + The literal value as passed in the constructor. + + + + Condition logger name expression (represented by the logger keyword). + + + + + + + + Evaluates to the logger name. + + Evaluation context. + The logger name. + + + + Condition message expression (represented by the message keyword). + + + + + + + + Evaluates to the logger message. + + Evaluation context. + The logger message. + + + + Condition method invocation expression (represented by method(p1,p2,p3) syntax). + + + + + Initializes a new instance of the class. + + Name of the condition method. + of the condition method. + Precompiled delegate of the condition method. + The method parameters. + + + + Gets the method info. + + + + + Gets the method parameters + + + + + + + + Evaluates the expression. + + Evaluation context. + Expression result. + + + + Condition not expression. + + + + + Initializes a new instance of the class. + + The expression. + + + + Gets the expression to be negated. + + The expression. + + + + + + + + + + Condition or expression. + + + + + Initializes a new instance of the class. + + Left hand side of the OR expression. + Right hand side of the OR expression. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + + + + Evaluates the expression by evaluating and recursively. + + Evaluation context. + The value of the alternative operator. + + + + Condition relational (==, !=, <, <=, + > or >=) expression. + + + + + Initializes a new instance of the class. + + The left expression. + The right expression. + The relational operator. + + + + Gets the left expression. + + The left expression. + + + + Gets the right expression. + + The right expression. + + + + Gets the relational operator. + + The operator. + + + + + + + + + + Compares the specified values using specified relational operator. + + The first value. + The second value. + The relational operator. + Result of the given relational operator. + + + + Promote values to the type needed for the comparison, e.g. parse a string to int. + + + + + + + Promotes to type + + + + success? + + + + Try to promote both values. First try to promote to , + when failed, try to . + + + + + + Get the order for the type for comparison. + + + index, 0 to max int. Lower is first + + + + Dictionary from type to index. Lower index should be tested first. + + + + + Build the dictionary needed for the order of the types. + + + + + + Get the string representing the current + + + + + + Condition parser. Turns a string representation of condition expression + into an expression tree. + + + + + Initializes a new instance of the class. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The expression to be parsed. + Instance of used to resolve references to condition methods and layout renderers. + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + Parses the specified condition string and turns it into + tree. + + The string reader. + Instance of used to resolve references to condition methods and layout renderers. + + The root of the expression syntax tree which can be used to get the value of the condition in a specified context. + + + + + Try stringed keyword to + + + + success? + + + + Parse number + + negative number? minus should be parsed first. + + + + + Hand-written tokenizer for conditions. + + + + + Initializes a new instance of the class. + + The string reader. + + + + Gets the type of the token. + + The type of the token. + + + + Gets the token value. + + The token value. + + + + Gets the value of a string token. + + The string token value. + + + + Asserts current token type and advances to the next token. + + Expected token type. + If token type doesn't match, an exception is thrown. + + + + Asserts that current token is a keyword and returns its value and advances to the next token. + + Keyword value. + + + + Gets or sets a value indicating whether current keyword is equal to the specified value. + + The keyword. + + A value of true if current keyword is equal to the specified value; otherwise, false. + + + + + Gets or sets a value indicating whether the tokenizer has reached the end of the token stream. + + + A value of true if the tokenizer has reached the end of the token stream; otherwise, false. + + + + + Gets or sets a value indicating whether current token is a number. + + + A value of true if current token is a number; otherwise, false. + + + + + Gets or sets a value indicating whether the specified token is of specified type. + + The token type. + + A value of true if current token is of specified type; otherwise, false. + + + + + Gets the next token and sets and properties. + + + + + Try the comparison tokens (greater, smaller, greater-equals, smaller-equals) + + current char + is match + + + + Try the logical tokens (and, or, not, equals) + + current char + is match + + + + Mapping between characters and token types for punctuations. + + + + + Initializes a new instance of the CharToTokenType struct. + + The character. + Type of the token. + + + + Token types for condition expressions. + + + + + Marks the class or a member as advanced. Advanced classes and members are hidden by + default in generated documentation. + + + + + Initializes a new instance of the class. + + + + + Identifies that the output of layout or layout render does not change for the lifetime of the current appdomain. + + + + Implementors must have the [ThreadAgnostic] attribute + + A layout(renderer) could be converted to a literal when: + - The layout and all layout properties are SimpleLayout or [AppDomainFixedOutput] + + Recommendation: Apply this attribute to a layout or layout-renderer which have the result only changes by properties of type Layout. + + + + + Used to mark configurable parameters which are arrays. + Specifies the mapping between XML elements and .NET types. + + + + + Initializes a new instance of the class. + + The type of the array item. + The XML element name that represents the item. + + + + Gets the .NET type of the array item. + + + + + Gets the XML element name. + + + + + An assembly is trying to load. + + + + + Initializes a new instance of the class. + + Assembly that have been loaded + + + + The assembly that is trying to load. + + + + + Constructs a new instance the configuration item (target, layout, layout renderer, etc.) given its type. + + Type of the item. + Created object of the specified type. + + + + Provides registration information for named items (targets, layouts, layout renderers, etc.) managed by NLog. + + Everything of an assembly could be loaded by + + + + + Called before the assembly will be loaded. + + + + + Initializes a new instance of the class. + + The assemblies to scan for named items. + + + + Gets or sets default singleton instance of . + + + This property implements lazy instantiation so that the is not built before + the internal logger is configured. + + + + + Gets or sets the creator delegate used to instantiate configuration objects. + + + By overriding this property, one can enable dependency injection or interception for created objects. + + + + + Gets the factory. + + The target factory. + + + + Gets the factory. + + The filter factory. + + + + gets the factory + + not using due to backwards-compatibility. + + + + + Gets the factory. + + The layout renderer factory. + + + + Gets the factory. + + The layout factory. + + + + Gets the ambient property factory. + + The ambient property factory. + + + + Gets or sets the JSON serializer to use with + + + + + Gets or sets the string serializer to use with + + + + + Gets or sets the parameter converter to use with or + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + - Null (Auto Detect) : NLog-parser checks for positional parameters, and will then fallback to string.Format-rendering. + - True: Always performs the parsing of and rendering of using the NLog-parser (Allows custom formatting with ) + - False: Always performs parsing and rendering using string.Format (Fastest if not using structured logging) + + + + + Gets the time source factory. + + The time source factory. + + + + Gets the condition method factory. + + The condition method factory. + + + + Gets the condition method factory (precompiled) + + The condition method factory. + + + + Registers named items from the assembly. + + The assembly. + + + + Registers named items from the assembly. + + The assembly. + Item name prefix. + + + + Call Preload for NLogPackageLoader + + + Every package could implement a class "NLogPackageLoader" (namespace not important) with the public static method "Preload" (no arguments) + This method will be called just before registering all items in the assembly. + + + + + + Call the Preload method for . The Preload method must be static. + + + + + + Clears the contents of all factories. + + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Builds the default configuration item factory. + + Default factory. + + + + Registers items in using late-bound types, so that we don't need a reference to the dll. + + + + + Attribute used to mark the default parameters for layout renderers. + + + + + Initializes a new instance of the class. + + + + + Dynamic filtering with a positive list of enabled levels + + + + + Dynamic filtering with a minlevel and maxlevel range + + + + + Format of the exception output to the specific target. + + + + + Appends the Message of an Exception to the specified target. + + + + + Appends the type of an Exception to the specified target. + + + + + Appends the short type of an Exception to the specified target. + + + + + Appends the result of calling ToString() on an Exception to the specified target. + + + + + Appends the method name from Exception's stack trace to the specified target. + + + + + Appends the stack trace from an Exception to the specified target. + + + + + Appends the contents of an Exception's Data property to the specified target. + + + + + Destructure the exception (usually into JSON) + + + + + Appends the from the application or the object that caused the error. + + + + + Appends the from the application or the object that caused the error. + + + + + Appends any additional properties that specific type of Exception might have. + + + + + Factory for class-based items. + + The base type of each item. + The type of the attribute used to annotate items. + + + + Scans the assembly. + + The types to scan. + The assembly name for the types. + The prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Registers the item based on a type name. + + Name of the item. + Name of the type. + + + + Clears the contents of the factory. + + + + + + + + Registers a single type definition. + + The item name. + The type of the item. + The assembly name for the types. + The item name prefix. + + + + + + + + + + + + + Factory specialized for s. + + + + + Clear all func layouts + + + + + Register a layout renderer with a callback function. + + Name of the layoutrenderer, without ${}. + the renderer that renders the value. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides means to populate factories of named items (such as targets, layouts, layout renderers, etc.). + + + + + Include context properties + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + Did the Initialize Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Implemented by objects which support installation and uninstallation. + + + + + Performs installation which requires administrative permissions. + + The installation context. + + + + Performs uninstallation which requires administrative permissions. + + The installation context. + + + + Determines whether the item is installed. + + The installation context. + + Value indicating whether the item is installed or null if it is not possible to determine. + + + + + Interface for accessing configuration details + + + + + Name of this configuration element + + + + + Configuration Key/Value Pairs + + + + + Child configuration elements + + + + + Interface for loading NLog + + + + + Finds and loads the NLog configuration + + LogFactory that owns the NLog configuration + Name of NLog.config file (optional) + NLog configuration (or null if none found) + + + + Notifies when LoggingConfiguration has been successfully applied + + LogFactory that owns the NLog configuration + NLog Config + + + + Get file paths (including filename) for the possible NLog config files. + + Name of NLog.config file (optional) + The file paths to the possible config file + + + + Level enabled flags for each LogLevel ordinal + + + + + Converts the filter into a simple + + + + + Represents a factory of named items (such as targets, layouts, layout renderers, etc.). + + Base type for each item instance. + Item definition type (typically or ). + + + + Registers new item definition. + + Name of the item. + Item definition. + + + + Tries to get registered item definition. + + Name of the item. + Reference to a variable which will store the item definition. + Item definition. + + + + Creates item instance. + + Name of the item. + Newly created item instance. + + + + Tries to create an item instance. + + Name of the item. + The result. + True if instance was created successfully, false otherwise. + + + + Provides context for install/uninstall operations. + + + + + Mapping between log levels and console output colors. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The log output. + + + + Gets or sets the installation log level. + + + + + Gets or sets a value indicating whether to ignore failures during installation. + + + + + Whether installation exceptions should be rethrown. If IgnoreFailures is set to true, + this property has no effect (there are no exceptions to rethrow). + + + + + Gets the installation parameters. + + + + + Gets or sets the log output. + + + + + Logs the specified trace message. + + The message. + The arguments. + + + + Logs the specified debug message. + + The message. + The arguments. + + + + Logs the specified informational message. + + The message. + The arguments. + + + + Logs the specified warning message. + + The message. + The arguments. + + + + Logs the specified error message. + + The message. + The arguments. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Creates the log event which can be used to render layouts during install/uninstall. + + Log event info object. + + + + Convert object-value into specified type + + + + + Parses the input value and converts into the wanted type + + Input Value + Wanted Type + Format to use when parsing + Culture to use when parsing + Output value with wanted type + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingRules for LoggingConfiguration + + + + + LoggingRule being built + + + + + Interface for fluent setup of target for LoggingRule + + + + + LoggingConfiguration being built + + + + + LogFactory under configuration + + + + + Collection of targets that should be written to + + + + + Interface for fluent setup of LogFactory options for extension loading + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for enabling NLog + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LoggingConfiguration for LogFactory + + + + + LogFactory under configuration + + + + + LoggingConfiguration being built + + + + + Interface for fluent setup of LogFactory options + + + + + LogFactory under configuration + + + + + Interface for fluent setup of LogFactory options for logevent serialization + + + + + LogFactory under configuration + + + + + Allows components to request stack trace information to be provided in the . + + + + + Gets the level of stack trace information required by the implementing class. + + + + + Encapsulates and the logic to match the actual logger name + All subclasses defines immutable objects. + Concrete subclasses defines various matching rules through + + + + + Creates a concrete based on . + + + Rules used to select the concrete implementation returned: + + if is null => returns (never matches) + if doesn't contains any '*' nor '?' => returns (matches only on case sensitive equals) + if == '*' => returns (always matches) + if doesn't contain '?' + + if contains exactly 2 '*' one at the beginning and one at the end (i.e. "*foobar*) => returns + if contains exactly 1 '*' at the beginning (i.e. "*foobar") => returns + if contains exactly 1 '*' at the end (i.e. "foobar*") => returns + + + returns + + + + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + A concrete + + + + Returns the argument passed to + + + + + Checks whether given name matches the logger name pattern. + + String to be matched. + A value of when the name matches, otherwise. + + + + Defines a that never matches. + Used when pattern is null + + + + + Defines a that always matches. + Used when pattern is '*' + + + + + Defines a that matches with a case-sensitive Equals + Used when pattern is a string without wildcards '?' '*' + + + + + Defines a that matches with a case-sensitive StartsWith + Used when pattern is a string like "*foobar" + + + + + Defines a that matches with a case-sensitive EndsWith + Used when pattern is a string like "foobar*" + + + + + Defines a that matches with a case-sensitive Contains + Used when pattern is a string like "*foobar*" + + + + + Defines a that matches with a complex wildcards combinations: + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + used when pattern is a string containing any number of '?' or '*' in any position + i.e. "*Server[*].Connection[?]" + + + + + Keeps logging configuration and provides simple API to modify it. + + This class is thread-safe..ToList() is used for that purpose. + + + + Gets the factory that will be configured + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets the variables defined in the configuration or assigned from API + + Name is case insensitive. + + + + Gets a collection of named targets specified in the configuration. + + + A list of named targets. + + + Unnamed targets (such as those wrapped by other targets) are not returned. + + + + + Gets the collection of file names which should be watched for changes by NLog. + + + + + Gets the collection of logging rules. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Gets all targets. + + + + + Inserts NLog Config Variable without overriding NLog Config Variable assigned from API + + + + + Lookup NLog Config Variable Layout + + + + + Registers the specified target object. The name of the target is read from . + + + The target object with a non + + when is + + + + Registers the specified target object under a given name. + + Name of the target. + The target object. + when is + when is + + + + Finds the target with the specified name. + + + The name of the target to be found. + + + Found target or when the target is not found. + + + + + Finds the target with the specified name and specified type. + + + The name of the target to be found. + + Type of the target + + Found target or when the target is not found of not of type + + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule with min- and maxLevel. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule object. + + rule object to add + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for one loglevel. + + log level needed to trigger this rule. + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Add a rule for all loglevels. + + Name of the target to be written when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + + + + Add a rule for all loglevels. + + Target to be written to when the rule matches. + Logger name pattern. It may include the '*' wildcard at the beginning, at the end or at both ends. + Gets or sets a value indicating whether to quit processing any further rule when this one matches. + + + + Lookup the logging rule with matching + + The name of the logging rule to be found. + Found logging rule or when not found. + + + + Removes the specified named logging rule with matching + + The name of the logging rule to be removed. + Found one or more logging rule to remove, or when not found. + + + + Called by LogManager when one of the log configuration files changes. + + + A new instance of that represents the updated configuration. + + + + + Allow this new configuration to capture state from the old configuration + + Old config that is about to be replaced + Checks KeepVariablesOnReload and copies all NLog Config Variables assigned from API into the new config + + + + Removes the specified named target. + + Name of the target. + + + + Installs target-specific objects on current system. + + The installation context. + + Installation typically runs with administrative permissions. + + + + + Uninstalls target-specific objects from current system. + + The installation context. + + Uninstallation typically runs with administrative permissions. + + + + + Closes all targets and releases any unmanaged resources. + + + + + Log to the internal (NLog) logger the information about the and associated with this instance. + + + The information are only recorded in the internal logger if Debug level is enabled, otherwise nothing is + recorded. + + + + + Validates the configuration. + + + + + Replace a simple variable with a value. The original value is removed and thus we cannot redo this in a later stage. + + + + + + + Checks whether unused targets exist. If found any, just write an internal log at Warn level. + If initializing not started or failed, then checking process will be canceled + + + + + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + The new configuration. + The old configuration. + + + + Gets the old configuration. + + The old configuration. + + + + Gets the new configuration. + + The new configuration. + + + + Gets the optional boolean attribute value. + + + Name of the attribute. + Default value to return if the attribute is not found or if there is a parse error + Boolean attribute value or default. + + + + Remove the namespace (before :) + + + x:a, will be a + + + + + + + Enables loading of NLog configuration from a file + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Get default file paths (including filename) for possible NLog config files. + + + + + Loads NLog configuration from + + + + + Constructor + + + + + + Loads NLog configuration from provided config section + + + Directory where the NLog-config-file was loaded from + + + + Builds list with unique keys, using last value of duplicates. High priority keys placed first. + + + + + + + Parse loglevel, but don't throw if exception throwing is disabled + + Name of attribute for logging. + Value of parse. + Used if there is an exception + + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Parse {Rules} xml element + + + Rules are added to this parameter. + + + + Parse {Logger} xml element + + + + + + Parse boolean + + Name of the property for logging. + value to parse + Default value to return if the parse failed + Boolean attribute value or default. + + + + Config element that's validated and having extra context + + + + + Explicit cast because NET35 doesn't support covariance. + + + + + Arguments for . + + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + + + + Initializes a new instance of the class. + + Whether configuration reload has succeeded. + The exception during configuration reload. + + + + Gets a value indicating whether configuration reload has succeeded. + + A value of true if succeeded; otherwise, false. + + + + Gets the exception which occurred during configuration reload. + + The exception. + + + + Enables FileWatcher for the currently loaded NLog Configuration File, + and supports automatic reload on file modification. + + + + + Represents a logging rule. An equivalent of <logger /> configuration element. + + + + + Create an empty . + + + + + Create an empty . + + + + + Create a new with a and which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a new with a which writes to . + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Minimum log level needed to trigger this rule. + Target to be written to when the rule matches. + + + + Create a (disabled) . You should call or to enable logging. + + Logger name pattern used for . It may include one or more '*' or '?' wildcards at any position. + Target to be written to when the rule matches. + + + + Rule identifier to allow rule lookup + + + + + Gets a collection of targets that should be written to when this rule matches. + + + + + Gets a collection of child rules to be evaluated when this rule matches. + + + + + Gets a collection of filters to be checked before writing to targets. + + + + + Gets or sets a value indicating whether to quit processing any following rules when this one matches. + + + + + Gets or sets the whether to quit processing any following rules when lower severity and this one matches. + + + Loggers matching will be restricted to specified minimum level for following rules. + + + + + Gets or sets logger name pattern. + + + Logger name pattern used by to check if a logger name matches this rule. + It may include one or more '*' or '?' wildcards at any position. + + '*' means zero or more occurrences of any character + '?' means exactly one occurrence of any character + + + + + + Gets the collection of log levels enabled by this rule. + + + + + Default action if none of the filters match + + + + + Default action if none of the filters match + + + + + Enables logging for a particular level. + + Level to be enabled. + + + + Enables logging for a particular levels between (included) and . + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Disables logging for a particular level. + + Level to be disabled. + + + + Disables logging for particular levels between (included) and . + + Minimum log level to be disables. + Maximum log level to be disabled. + + + + Enables logging the levels between (included) and . All the other levels will be disabled. + + Minimum log level needed to trigger this rule. + Maximum log level needed to trigger this rule. + + + + Returns a string representation of . Used for debugging. + + + + + Checks whether the particular log level is enabled for this rule. + + Level to be checked. + A value of when the log level is enabled, otherwise. + + + + Checks whether given name matches the . + + String to be matched. + A value of when the name matches, otherwise. + + + + Default filtering with static level config + + + + + Factory for locating methods. + + + + + Initializes a new instance of the class. + + + + + Scans the assembly for classes marked with expected class + and methods marked with expected and adds them + to the factory. + + The types to scan. + The assembly name for the type. + The item name prefix. + + + + Registers the type. + + The type to register. + The item name prefix. + + + + Registers the type. + + The type to register. + The assembly name for the type. + The item name prefix. + + + + Scans a type for relevant methods with their symbolic names + + Include types that are marked with this attribute + Include methods that are marked with this attribute + Class Type to scan + Collection of methods with their symbolic names + + + + Clears contents of the factory. + + + + + Registers the definition of a single method. + + The method name. + The method info. + + + + Registers the definition of a single method. + + The method name. + The method info. + The assembly name for the method. + The item name prefix. + + + + Registers the definition of a single method. + + The method name. + The method info. + The precompiled method delegate. + + + + Tries to retrieve method by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Tries to retrieve method-delegate by name. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Retrieves method by name. + + Method name. + MethodInfo object. + + + + Retrieves method by name. + + Method name. + Method delegate object. + + + + Tries to get method definition. + + The method name. + The result. + A value of true if the method was found, false otherwise. + + + + Marks the layout or layout renderer depends on mutable objects from the LogEvent + + This can be or + + + + + Attaches a type-alias for an item (such as , + , , etc.). + + + + + Initializes a new instance of the class. + + The type-alias for use in NLog configuration. + + + + Gets the name of the type-alias + + + + + Indicates NLog should not scan this property during configuration. + + + + + Initializes a new instance of the class. + + + + + Marks the object as configuration item for NLog. + + + + + Initializes a new instance of the class. + + + + + Failed to resolve the interface of service type + + + + + Typed we tried to resolve + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Represents simple XML element with case-insensitive attribute semantics. + + + + + Initializes a new instance of the class. + + The reader to initialize element from. + + + + Gets the element name. + + + + + Gets the dictionary of attribute values. + + + + + Gets the collection of child elements. + + + + + Gets the value of the element. + + + + + Returns children elements with the specified element name. + + Name of the element. + Children elements with the specified element name. + + + + Asserts that the name of the element is among specified element names. + + The allowed names. + + + + Special attribute we could ignore + + + + + Default implementation of + + + + + Singleton instance of the serializer. + + + + + + + + Attribute used to mark the required parameters for targets, + layout targets and filters. + + + + + Interface to register available configuration objects type + + + + + Registers instance of singleton object for use in NLog + + Type of service + Instance of service + + + + Gets the service object of the specified type. + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Registers singleton-object as implementation of specific interface. + + + If the same single-object implements multiple interfaces then it must be registered for each interface + + Type of interface + The repo + Singleton object to use for override + + + + Registers the string serializer to use with + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Initializes a new instance of the class. + + + + + Registered service type in the service repository + + + + + Initializes a new instance of the class. + + Type of service that have been registered + + + + Type of service-interface that has been registered + + + + + Provides simple programmatic configuration API used for trivial logging cases. + + Warning, these methods will overwrite the current config. + + + + + Configures NLog for console logging so that all messages above and including + the level are output to the console. + + + + + Configures NLog for console logging so that all messages above and including + the specified level are output to the console. + + The minimal logging level. + + + + Configures NLog for to log to the specified target so that all messages + above and including the level are output. + + The target to log all messages to. + + + + Configures NLog for to log to the specified target so that all messages + above and including the specified level are output. + + The target to log all messages to. + The minimal logging level. + + + + Configures NLog for file logging so that all messages above and including + the level are written to the specified file. + + Log file name. + + + + Configures NLog for file logging so that all messages above and including + the specified level are written to the specified file. + + Log file name. + The minimal logging level. + + + + Value indicating how stack trace should be captured when processing the log event. + + + + + No Stack trace needs to be captured. + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers + + + + + Capture also filenames and linenumbers + + + + + Capture the location of the call + + + + + Capture the class name for location of the call + + + + + Stack trace should be captured. This option won't add the filenames and linenumbers. + + + + + Stack trace should be captured including filenames and linenumbers. + + + + + Capture maximum amount of the stack trace information supported on the platform. + + + + + Marks the layout or layout renderer as thread independent - it producing correct results + regardless of the thread it's running on. + + Without this attribute everything is rendered on the main thread. + + + If this attribute is set on a layout, it could be rendered on the another thread. + This could be more efficient as it's skipped when not needed. + + If context like HttpContext.Current is needed, which is only available on the main thread, this attribute should not be applied. + + See the AsyncTargetWrapper and BufferTargetWrapper with the , using + + Apply this attribute when: + - The result can we rendered in another thread. Delaying this could be more efficient. And/Or, + - The result should not be precalculated, for example the target sends some extra context information. + + + + + Marks the layout or layout renderer as thread safe - it producing correct results + regardless of the number of threads it's running on. + + Without this attribute then the target concurrency will be reduced + + + + + A class for configuring NLog through an XML configuration file + (App.config style or App.nlog style). + + Parsing of the XML file is also implemented in this class. + + + - This class is thread-safe..ToList() is used for that purpose. + - Update TemplateXSD.xml for changes outside targets + + + + + Initializes a new instance of the class. + + Configuration file to be read. + + + + Initializes a new instance of the class. + + Configuration file to be read. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + Configuration file to be read. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + XML reader to read from. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Initializes a new instance of the class. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + The to which to apply any applicable configuration values. + + + + Initializes a new instance of the class. + + NLog configuration as XML string. + Name of the XML file. + The to which to apply any applicable configuration values. + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + + + + Parse XML string as NLog configuration + + NLog configuration in XML to be parsed + NLog LogFactory + + + + Did the Succeeded? true= success, false= error, null = initialize not started yet. + + + + + Gets or sets a value indicating whether all of the configuration files + should be watched for changes and reloaded automatically when changed. + + + + + Gets the collection of file names which should be watched for changes by NLog. + This is the list of configuration files processed. + If the autoReload attribute is not set it returns empty collection. + + + + + Re-reads the original configuration file and returns the new object. + + The new object. + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Create XML reader for (xml config) file. + + filepath + reader or null if filename is empty. + + + + Initializes the configuration. + + containing the configuration section. + Name of the file that contains the element (to be used as a base for including other files). null is allowed. + Ignore any errors during configuration. + + + + Add a file with configuration. Check if not already included. + + + + + + + Parse the root + + + path to config file. + The default value for the autoReload option. + + + + Parse {configuration} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parse {NLog} xml element. + + + path to config file. + The default value for the autoReload option. + + + + Parses a single config section within the NLog-config + + + Section was recognized + + + + Include (multiple) files by filemask, e.g. *.nlog + + base directory in case if is relative + relative or absolute fileMask + + + + + + + + Global Diagnostics Context - a dictionary structure to hold per-application-instance values. + + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Sets the Global Diagnostics Context item to the specified value. + + Item name. + Item value. + + + + Gets the Global Diagnostics Context named item. + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context item. + + Item name. + to use when converting the item's value to a string. + The value of as a string, if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the Global Diagnostics Context named item. + + Item name. + The item value, if defined; otherwise null. + + + + Returns all item names + + A collection of the names of all items in the Global Diagnostics Context. + + + + Checks whether the specified item exists in the Global Diagnostics Context. + + Item name. + A boolean indicating whether the specified item exists in current thread GDC. + + + + Removes the specified item from the Global Diagnostics Context. + + Item name. + + + + Clears the content of the GDC. + + + + + Mapped Diagnostics Context - a thread-local structure that keeps a dictionary + of strings and provides methods to output them in layouts. + + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current thread MDC. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Sets the current thread MDC item to the specified value. + + Item name. + Item value. + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The to use when converting a value to a . + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current thread MDC named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Returns all item names + + A set of the names of all items in current thread-MDC. + + + + Checks whether the specified item exists in current thread MDC. + + Item name. + A boolean indicating whether the specified exists in current thread MDC. + + + + Removes the specified from current thread MDC. + + Item name. + + + + Clears the content of current thread MDC. + + + + + Async version of Mapped Diagnostics Context - a logical context structure that keeps a dictionary + of strings and provides methods to output them in layouts. Allows for maintaining state across + asynchronous tasks and call contexts. + + + Ideally, these changes should be incorporated as a new version of the MappedDiagnosticsContext class in the original + NLog library so that state can be maintained for multiple threads in asynchronous situations. + + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise . + If the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The to use when converting a value to a string. + The value of , if defined; otherwise . + If is null and the value isn't a already, this call locks the for reading the needed for converting to . + + + + Gets the current logical context named item, as . + + Item name. + The value of , if defined; otherwise null. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + >An that can be used to remove the item from the current logical context. + + + + Updates the current logical context with multiple items in single operation + + . + >An that can be used to remove the item from the current logical context (null if no items). + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Sets the current logical context item to the specified value. + + Item name. + Item value. + + + + Returns all item names + + A collection of the names of all items in current logical context. + + + + Checks whether the specified exists in current logical context. + + Item name. + A boolean indicating whether the specified exists in current logical context. + + + + Removes the specified from current logical context. + + Item name. + + + + Clears the content of current logical context. + + + + + Clears the content of current logical context. + + Free the full slot. + + + + Nested Diagnostics Context - a thread-local structure that keeps a stack + of strings and provides methods to output them in layouts + + + + + Gets the top NDC message but doesn't remove it. + + The top message. . + + + + Gets the top NDC object but doesn't remove it. + + The object at the top of the NDC stack if defined; otherwise null. + + + + Pushes the specified text on current thread NDC. + + The text to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified object on current thread NDC. + + The object to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDC stack. + + The top message which is no longer on the stack. + + + + Pops the top message from the NDC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top object off the NDC stack. + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Peeks the first object on the NDC stack + + The object from the top of the NDC stack, if defined; otherwise null. + + + + Clears current thread NDC stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. + + Array of objects on the stack. + + + + Async version of - a logical context structure that keeps a stack + Allows for maintaining scope across asynchronous tasks and call contexts. + + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pushes the specified value on current stack + + The value to be pushed. + An instance of the object that implements IDisposable that returns the stack to the previous level when IDisposable.Dispose() is called. To be used with C# using() statement. + + + + Pops the top message off the NDLC stack. + + The top message which is no longer on the stack. + this methods returns a object instead of string, this because of backwards-compatibility + + + + Pops the top message from the NDLC stack. + + The to use when converting the value to a string. + The top message, which is removed from the stack, as a string value. + + + + Pops the top message off the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Peeks the top object on the current NDLC stack + + The object from the top of the NDLC stack, if defined; otherwise null. + + + + Clears current stack. + + + + + Gets all messages on the stack. + + Array of strings on the stack. + + + + Gets all messages from the stack, without removing them. + + The to use when converting a value to a string. + Array of strings. + + + + Gets all objects on the stack. The objects are not removed from the stack. + + Array of objects on the stack. + + + + stores state in the async thread execution context. All LogEvents created + within a scope can include the scope state in the target output. The logical context scope supports + both scope-properties and scope-nested-state-stack (Similar to log4j2 ThreadContext) + + + (MDLC), (MDC), (NDLC) + and (NDC) have been deprecated and replaced by . + + .NetCore (and .Net46) uses AsyncLocal for handling the thread execution context. Older .NetFramework uses System.Runtime.Remoting.CallContext + + + + + Pushes new state on the logical context scope stack together with provided properties + + Value to added to the scope stack + Properties being added to the scope dictionary + A disposable object that pops the nested scope state on dispose (including properties). + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Updates the logical scope context with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + Scope dictionary keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + Skips casting of to check for scope-properties + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Clears all the entire logical context scope, and removes any properties and nested-states + + + + + Retrieves all properties stored within the logical context scopes + + Collection of all properties + + + + Lookup single property stored within the logical context scopes + + Name of property + When this method returns, contains the value associated with the specified key + Returns true when value is found with the specified key + Scope dictionary keys are case-insensitive + + + + Retrieves all nested states inside the logical context scope stack + + Array of nested state objects. + + + + Peeks the top value from the logical context scope stack + + Value from the top of the stack. + + + + Peeks the inner state (newest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Peeks the outer state (oldest) from the logical context scope stack, and returns its running duration + + Scope Duration Time + + + + Special bookmark that can restore original parent, after scopes has been collapsed + + + + + Matches when the specified condition is met. + + + Conditions are expressed using a simple language. + + Documentation on NLog Wiki + + + + Gets or sets the condition expression. + + + + + + + + + An abstract filter class. Provides a way to eliminate log messages + based on properties other than logger name and log level. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the action to be taken when filter matches. + + + + + + Gets the result of evaluating filter against given log event. + + The log event. + Filter result. + + + + Checks whether log event should be logged or not. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Marks class as a layout renderer and assigns a name to it. + + + + + Initializes a new instance of the class. + + Name of the filter. + + + + Filter result. + + + + + The filter doesn't want to decide whether to log or discard the message. + + + + + The message should be logged. + + + + + The message should not be logged. + + + + + The message should be logged and processing should be finished. + + + + + The message should not be logged and processing should be finished. + + + + + A base class for filters that are based on comparing a value to a layout. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout to be used to filter log messages. + + The layout. + + + + + Matches when the calculated layout contains the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets the substring to be matched. + + + + + + + + + Matches when the calculated layout is equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + Gets or sets a string to compare the layout to. + + + + + + + + + Matches the provided filter-method + + + + + Initializes a new instance of the class. + + + + + + + + Matches when the calculated layout does NOT contain the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Gets or sets the substring to be matched. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the calculated layout is NOT equal to the specified substring. + This filter is deprecated in favor of <when /> which is based on conditions. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a string to compare the layout to. + + + + + + Gets or sets a value indicating whether to ignore case when comparing strings. + + + + + + + + + Matches when the result of the calculated layout has been repeated a moment ago + + + + + How long before a filter expires, and logging is accepted again + + + + + + Max length of filter values, will truncate if above limit + + + + + + Applies the configured action to the initial logevent that starts the timeout period. + Used to configure that it should ignore all events until timeout. + + + + + + Max number of unique filter values to expect simultaneously + + + + + + Default number of unique filter values to expect, will automatically increase if needed + + + + + + Insert FilterCount value into when an event is no longer filtered + + + + + + Append FilterCount to the when an event is no longer filtered + + + + + + Reuse internal buffers, and doesn't have to constantly allocate new buffers + + + + + + Default buffer size for the internal buffers + + + + + + Checks whether log event should be logged or not. In case the LogEvent has just been repeated. + + Log event. + + - if the log event should be ignored
+ - if the filter doesn't want to decide
+ - if the log event should be logged
+ .
+
+ + + Uses object pooling, and prunes stale filter items when the pool runs dry + + + + + Remove stale filter-value from the cache, and fill them into the pool for reuse + + + + + Renders the Log Event into a filter value, that is used for checking if just repeated + + + + + Repeated LogEvent detected. Checks if it should activate filter-action + + + + + Filter Value State (mutable) + + + + + Filter Lookup Key (immutable) + + + + + A global logging class using caller info to find the logger. + + + + + Starts building a log event with the specified . + + The log level. + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Trace level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Debug level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Info level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Warn level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Error level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + Starts building a log event at the Fatal level. + + The full path of the source file that contains the caller. This is the file path at the time of compile. + An instance of the fluent . + + + + A fluent class to build log events for NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The for the log event. + + + + Gets the created by the builder. + + + + + Sets the information of the logging event. + + The exception information of the logging event. + current for chaining calls. + + + + Sets the level of the logging event. + + The level of the logging event. + current for chaining calls. + + + + Sets the logger name of the logging event. + + The logger name of the logging event. + current for chaining calls. + + + + Sets the log message on the logging event. + + The log message for the logging event. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + The first object to format. + The second object to format. + The third object to format. + The fourth object to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A composite format string. + An object array that contains zero or more objects to format. + current for chaining calls. + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + current for chaining calls. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + current for chaining calls. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + current for chaining calls. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + current for chaining calls. + + + + Writes the log event to the underlying logger. + + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition delegate is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger if the condition is true. + + If condition is true, write log event; otherwise ignore event. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Extension methods for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. + current for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + current for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + current for chaining calls. + + + + Extensions for NLog . + + + + + Starts building a log event with the specified . + + The logger to write the log event to. + The log level. When not + for chaining calls. + + + + Starts building a log event at the Trace level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Debug level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Info level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Warn level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Error level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Fatal level. + + The logger to write the log event to. + for chaining calls. + + + + Starts building a log event at the Exception level. + + The logger to write the log event to. + The exception information of the logging event. + The for the log event. Defaults to when not specified. + for chaining calls. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A logger implementation that will handle the message. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A logger implementation that will handle the message. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A logger implementation that will handle the message. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message and exception at the specified level. + + A logger implementation that will handle the message. + The log level. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Info level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Warn level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Error level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Fatal level. + + A logger implementation that will handle the message. + An exception to be logged. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Interface for fakeable of the current AppDomain. + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + Abstract calls for the application environment + + + + + Gets current process name (excluding filename extension, if any). + + + + + Process exit event. + + + + + Abstract calls to FileSystem + + + + Determines whether the specified file exists. + The file to check. + + + Returns the content of the specified file + The file to load. + + + + Adapter for to + + + + + Initializes a new instance of the class. + + The to wrap. + + + + Creates an AppDomainWrapper for the current + + + + + Gets or sets the base directory that the assembly resolver uses to probe for assemblies. + + + + + Gets or sets the name of the configuration file for an application domain. + + + + + Gets or sets the list of directories under the application base directory that are probed for private assemblies. + + + + + Gets or set the friendly name. + + + + + Gets an integer that uniquely identifies the application domain within the process. + + + + + Gets the assemblies that have been loaded into the execution context of this application domain. + + A list of assemblies in this application domain. + + + + Process exit event. + + + + + Domain unloaded event. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Format a log message + + + + + Perform message template parsing and formatting of LogEvent messages (True = Always, False = Never, Null = Auto Detect) + + + + + Format the message and return + + LogEvent with message to be formatted + formatted message + + + + Has the logevent properties? + + LogEvent with message to be formatted + False when logevent has no properties to be extracted + + + + Appends the logevent message to the provided StringBuilder + + LogEvent with message to be formatted + The to append the formatted message. + + + + Get the Raw, unformatted value without stringify + + + Implementors must has the [ThreadAgnostic] attribute + + + + + Get the raw value + + + The value + RawValue supported? + + + + Interface implemented by layouts and layout renderers. + + + + + Renders the value of layout or layout renderer in the context of the specified log event. + + The log event. + String representation of a layout. + + + + Supports rendering as string value with limited or no allocations (preferred) + + + Implementors must not have the [AppDomainFixedOutput] attribute + + + + + Renders the value of layout renderer in the context of the specified log event + + + null if not possible or unknown + + + + Supports object initialization and termination. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Helpers for . + + + + + Load from url + + file or path, including .dll + basepath, optional + + + + + Load from url + + name without .dll + + + + + Forward declare of system delegate type for use by other classes + + + + + Keeps track of pending operation count, and can notify when pending operation count reaches zero + + + + + Mark operation has started + + + + + Mark operation has completed + + Exception coming from the completed operation [optional] + + + + Registers an AsyncContinuation to be called when all pending operations have completed + + Invoked on completion + AsyncContinuation operation + + + + Clear o + + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace. + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Legacy attempt to skip async MoveNext, but caused source file line number to be lost + + + + + Gets the entire stack trace. + + + + + Finds first user stack frame in a stack trace + + The stack trace of the logging method invocation + Type of the logger or logger wrapper. This is still Logger if it's a subclass of Logger. + Index of the first user stack frame or 0 if all stack frames are non-user + + + + This is only done for legacy reason, as the correct method-name and line-number should be extracted from the MoveNext-StackFrame + + The stack trace of the logging method invocation + Starting point for skipping async MoveNext-frames + + + + Assembly to skip? + + Find assembly via this frame. + true, we should skip. + + + + Is this the type of the logger? + + get type of this logger in this frame. + Type of the logger. + + + + + Memory optimized filtering + + Passing state too avoid delegate capture and memory-allocations. + + + + Ensures that IDictionary.GetEnumerator returns DictionaryEntry values + + + + + Most-Recently-Used-Cache, that discards less frequently used items on overflow + + + + + Constructor + + Maximum number of items the cache will hold before discarding. + + + + Attempt to insert item into cache. + + Key of the item to be inserted in the cache. + Value of the item to be inserted in the cache. + true when the key does not already exist in the cache, false otherwise. + + + + Lookup existing item in cache. + + Key of the item to be searched in the cache. + Output value of the item found in the cache. + True when the key is found in the cache, false otherwise. + + + + Dictionary that combines the standard with the + MessageTemplate-properties extracted from the . + + The are returned as the first items + in the collection, and in positional order. + + + + + Value of the property + + + + + Has property been captured from message-template ? + + + + + The properties of the logEvent + + + + + The properties extracted from the message-template + + + + + Wraps the list of message-template-parameters as IDictionary-interface + + Message-template-parameters + + + + Transforms the list of event-properties into IDictionary-interface + + Message-template-parameters + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Check if the message-template-parameters can be used directly without allocating a dictionary + + Message-template-parameters + Are all parameter names unique (true / false) + + + + Attempt to insert the message-template-parameters into an empty dictionary + + Message-template-parameters + The dictionary that initially contains no message-template-parameters + + + + + + + + + + + + + + + + + + + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + Will always throw, as collection is readonly + + + + + + + + + + + + + + + + + + + Special property-key for lookup without being case-sensitive + + + + + Property-Key equality-comparer that uses string-hashcode from OrdinalIgnoreCase + Enables case-insensitive lookup using + + + + + HashSet optimized for single item + + + + + + Insert single item on scope start, and remove on scope exit + + Item to insert in scope + Existing hashset to update + Force allocation of real hashset-container + HashSet EqualityComparer + + + + Add item to collection, if it not already exists + + Item to insert + + + + Clear hashset + + + + + Check if hashset contains item + + + Item exists in hashset (true/false) + + + + Remove item from hashset + + + Item removed from hashset (true/false) + + + + Copy items in hashset to array + + Destination array + Array offset + + + + Create hashset enumerator + + Enumerator + + + + Provides helpers to sort log events and associated continuations. + + + + + Key selector delegate. + + The type of the value. + The type of the key. + Value to extract key information from. + Key selected from log event. + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Performs bucket sort (group by) on an array of items and returns a dictionary for easy traversal of the result set. + + The type of the value. + The type of the key. + The inputs. + The key selector function. + The key comparer function. + + Dictionary where keys are unique input keys, and values are lists of . + + + + + Single-Bucket optimized readonly dictionary. Uses normal internally Dictionary if multiple buckets are needed. + + Avoids allocating a new dictionary, when all items are using the same bucket + + The type of the key. + The type of the value. + + + + + + + + + + + + + + + + Allows direct lookup of existing keys. If trying to access non-existing key exception is thrown. + Consider to use instead for better safety. + + Key value for lookup + Mapped value found + + + + Non-Allocating struct-enumerator + + + + + + + + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + Will always throw, as dictionary is readonly + + + Will always throw, as dictionary is readonly + + + + + + + + + Will always throw, as dictionary is readonly + + + + UTF-8 BOM 239, 187, 191 + + + + + Safe way to get environment variables. + + + + + Helper class for dealing with exceptions. + + + + + Mark this exception as logged to the . + + + + + + + Is this exception logged to the ? + + + trueif the has been logged to the . + + + + Determines whether the exception must be rethrown and logs the error to the if is false. + + Advised to log first the error to the before calling this method. + + The exception to check. + Target Object context of the exception. + Target Method context of the exception. + trueif the must be rethrown, false otherwise. + + + + Determines whether the exception must be rethrown immediately, without logging the error to the . + + Only used this method in special cases. + + The exception to check. + trueif the must be rethrown, false otherwise. + + + + FormatProvider that renders an exception-object as $"{ex.GetType()}: {ex.Message}" + + + + + Object construction helper. + + + + + Base class for optimized file appenders. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the path of the file, including file extension. + + The name of the file. + + + + Gets or sets the creation time for a file associated with the appender. The time returned is in Coordinated + Universal Time [UTC] standard. + + The creation time of the file. + + + + Gets or sets the creation time for a file associated with the appender. Synchronized by + The time format is based on + + + + + Gets the last time the file associated with the appender is opened. The time returned is in Coordinated + Universal Time [UTC] standard. + + The time the file was last opened. + + + + Gets the file creation parameters. + + The file creation parameters. + + + + Writes the specified bytes. + + The bytes. + + + + Writes the specified bytes to a file. + + The bytes array. + The bytes array offset. + The number of bytes. + + + + Flushes this file-appender instance. + + + + + Closes this file-appender instance. + + + + + Gets the creation time for a file associated with the appender. The time returned is in Coordinated Universal + Time [UTC] standard. + + The file creation time. + + + + Gets the length in bytes of the file associated with the appender. + + A long value representing the length of the file in bytes. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates the file stream. + + If set to true sets the file stream to allow shared writing. + If larger than 0 then it will be used instead of the default BufferSize for the FileStream. + A object which can be used to write to the file. + + + + Base class for optimized file appenders which require the usage of a mutex. + + It is possible to use this class as replacement of BaseFileAppender and the mutex functionality + is not enforced to the implementing subclasses. + + + + + Initializes a new instance of the class. + + Name of the file. + The create parameters. + + + + Gets the mutually-exclusive lock for archiving files. + + The mutex for archiving. + + + + + + + Creates a mutex that is sharable by more than one process. + + The prefix to use for the name of the mutex. + A object which is sharable by multiple processes. + + + + Implementation of which caches + file information. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class which creates objects. + + + + + + + + Maintains a collection of file appenders usually associated with file targets. + + + + + An "empty" instance of the class with zero size and empty list of appenders. + + + + + Initializes a new "empty" instance of the class with zero size and empty + list of appenders. + + + + + Initializes a new instance of the class. + + + The size of the list should be positive. No validations are performed during initialization as it is an + internal class. + + Total number of appenders allowed in list. + Factory used to create each appender. + Parameters used for creating a file. + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + Interface that provides parameters for create file function. + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + Gets or sets the log file buffer size in bytes. + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + Gets or sets the file attributes (Windows only). + + + + + Should archive mutex be created? + + + + + Should manual simple detection of file deletion be enabled? + + + + + Gets the parameters which will be used for creating a file. + + + + + Gets the file appender factory used by all the appenders in this list. + + + + + Gets the number of appenders which the list can hold. + + + + + Subscribe to background monitoring of active file appenders + + + + + It allocates the first slot in the list when the file name does not already in the list and clean up any + unused slots. + + File name associated with a single appender. + The allocated appender. + + + + Close all the allocated appenders. + + + + + Close the allocated appenders initialized before the supplied time. + + The time which prior the appenders considered expired + + + + Flush all the allocated appenders. + + + + + File Archive Logic uses the File-Creation-TimeStamp to detect if time to archive, and the File-LastWrite-Timestamp to name the archive-file. + + + NLog always closes all relevant appenders during archive operation, so no need to lookup file-appender + + + + + Closes the specified appender and removes it from the list. + + File name of the appender to be closed. + File Appender that matched the filePath (null if none found) + + + + The archive file path pattern that is used to detect when archiving occurs. + + + + + Invalidates appenders for all files that were archived. + + + + + Interface implemented by all factories capable of creating file appenders. + + + + + Opens the appender for given file name and parameters. + + Name of the file. + Creation parameters. + Instance of which can be used to write to the file. + + + + Provides a multi process-safe atomic file appends while + keeping the files open. + + + On Unix you can get all the appends to be atomic, even when multiple + processes are trying to write to the same file, because setting the file + pointer to the end of the file and appending can be made one operation. + On Win32 we need to maintain some synchronization between processes + (global named mutex is used for this) + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Appender used to discard data for the FileTarget. + Used mostly for testing entire stack except the actual writing to disk. + Throws away all data. + + + + + Factory class. + + + + + + + + Multi-process and multi-host file appender which attempts + to get exclusive write access and retries if it's not available. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + Optimized single-process file appender which keeps the file open for exclusive write. + + + + + Initializes a new instance of the class. + + Name of the file. + The parameters. + + + + + + + + + + + + + + + + + + + Factory class. + + + + + + + + A layout that represents a filePath. + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Cached invalid file names char array to avoid memory allocation every time Path.GetInvalidFileNameChars() is called. + + + + + not null when == false + + + + + non null is fixed, + + + + + is the cache-key, and when newly rendered filename matches the cache-key, + then it reuses the cleaned cache-value . + + + + + is the cache-value that is reused, when the newly rendered filename + matches the cache-key + + + + Initializes a new instance of the class. + + + + Render the raw filename from Layout + + The log event. + StringBuilder to minimize allocations [optional]. + String representation of a layout. + + + + Convert the raw filename to a correct filename + + The filename generated by Layout. + String representation of a correct filename. + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Is this (templated/invalid) path an absolute, relative or unknown? + + + + + Watches multiple files at the same time and raises an event whenever + a single change is detected in any of those files. + + + + + The types of changes to watch for. + + + + + Occurs when a change is detected in one of the monitored files. + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Stops watching all files. + + + + + Stops watching the specified file. + + + + + + Watches the specified files for changes. + + The file names. + + + + Combine paths + + basepath, not null + optional dir + optional file + + + + + Cached directory separator char array to avoid memory allocation on each method call. + + + + + Trims directory separators from the path + + path, could be null + never null + + + + Convert object to string + + value + format for conversion. + + + If is null and isn't a already, then the will get a locked by + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Supports mocking of SMTP Client code. + + + + + Specifies how outgoing email messages will be handled. + + + + + Gets or sets the name or IP address of the host used for SMTP transactions. + + + + + Gets or sets the port used for SMTP transactions. + + + + + Gets or sets a value that specifies the amount of time after which a synchronous Send call times out. + + + + + Gets or sets the credentials used to authenticate the sender. + + + + + Sends an e-mail message to an SMTP server for delivery. These methods block while the message is being transmitted. + + + System.Net.Mail.MailMessage + MailMessage + A MailMessage that contains the message to send. + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + The MessageFormatter delegate + + + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + New formatter + + + When true: Do not fallback to StringBuilder.Format for positional templates + + + + + The MessageFormatter delegate + + + + + + + + Render a template to a string. + + The template. + Culture. + Parameters for the holes. + The String Builder destination. + Parameters for the holes. + + + + Detects the platform the NLog is running on. + + + + + Gets a value indicating whether current runtime supports use of mutex + + + + + Will creating a mutex succeed runtime? + + + + + Supports mocking of SMTP Client code. + + + Disabled Error CS0618 'SmtpClient' is obsolete: 'SmtpClient and its network of types are poorly designed, + we strongly recommend you use https://github.com/jstedfast/MailKit and https://github.com/jstedfast/MimeKit instead' + + + + + Retrieve network interfaces + + + + + Retrieve network interfaces + + + + + Network sender which uses HTTP or HTTPS POST. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Creates instances of objects for given URLs. + + + + + Creates a new instance of the network sender based on a network URL. + + URL that determines the network sender to be created. + The maximum queue size. + The overflow action when reaching maximum queue size. + The maximum message size. + SSL protocols for TCP + KeepAliveTime for TCP + + A newly created network sender. + + + + + Interface for mocking socket calls. + + + + + A base class for all network senders. Supports one-way sending of messages + over various protocols. + + + + + Initializes a new instance of the class. + + The network URL. + + + + Gets the address of the network endpoint. + + + + + Gets the last send time. + + + + + Initializes this network sender. + + + + + Closes the sender and releases any unmanaged resources. + + The continuation. + + + + Flushes any pending messages and invokes the on completion. + + The continuation. + + + + Send the given text over the specified protocol. + + Bytes to be sent. + Offset in buffer. + Number of bytes to send. + The asynchronous continuation. + + + + Closes the sender and releases any unmanaged resources. + + + + + Initializes resources for the protocol specific implementation. + + + + + Closes resources for the protocol specific implementation. + + The continuation. + + + + Performs the flush and invokes the on completion. + + The continuation. + + + + Sends the payload using the protocol specific implementation. + + The bytes to be sent. + Offset in buffer. + Number of bytes to send. + The async continuation to be invoked after the buffer has been sent. + + + + Parses the URI into an IP address. + + The URI to parse. + The address family. + Parsed endpoint. + + + + Default implementation of . + + + + + + + + A base class for network senders that can block or send out-of-order + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + + + + Socket proxy for mocking Socket code. + + + + + Initializes a new instance of the class. + + The address family. + Type of the socket. + Type of the protocol. + + + + Gets underlying socket instance. + + + + + Closes the wrapped socket. + + + + + Invokes ConnectAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Invokes SendToAsync method on the wrapped socket. + + The instance containing the event data. + Result of original method. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Sends messages over a TCP network connection. + + + + + Initializes a new instance of the class. + + URL. Must start with tcp://. + The address family. + + + + Creates the socket with given parameters. + + The host address. + The address family. + Type of the socket. + Type of the protocol. + Instance of which represents the socket. + + + + Facilitates mocking of class. + + + + + Raises the Completed event. + + + + + Sends messages over the network as UDP datagrams. + + + + + Initializes a new instance of the class. + + URL. Must start with udp://. + The address family. + + + + Creates the socket. + + The IP address. + Implementation of to use. + + + + Allocates new builder and appends to the provided target builder on dispose + + + + + Access the new builder allocated + + + + + Controls a single allocated AsyncLogEventInfo-List for reuse (only one active user) + + + + + Controls a single allocated char[]-buffer for reuse (only one active user) + + + + + Controls a single allocated StringBuilder for reuse (only one active user) + + + + + Controls a single allocated object for reuse (only one active user) + + + + + Creates handle to the reusable char[]-buffer for active usage + + Handle to the reusable item, that can release it again + + + + Access the acquired reusable object + + + + + Controls a single allocated MemoryStream for reuse (only one active user) + + + + + Constructor + + Max number of items + Initial StringBuilder Size + Max StringBuilder Size + + + + Takes StringBuilder from pool + + Allow return to pool + + + + Releases StringBuilder back to pool at its right place + + + + + Keeps track of acquired pool item + + + + + Releases pool item back into pool + + + + + Detects the platform the NLog is running on. + + + + + Gets the current runtime OS. + + + + + Gets a value indicating whether current OS is Win32-based (desktop or mobile). + + + + + Gets a value indicating whether current OS is Unix-based. + + + + + Scans (breadth-first) the object graph following all the edges whose are + instances have attached and returns + all objects implementing a specified interfaces. + + + + + Finds the objects which have attached which are reachable + from any of the given root objects when traversing the object graph over public properties. + + Type of the objects to return. + Also search the properties of the wanted objects. + The root objects. + Ordered list of objects implementing T. + + + ISet is not there in .net35, so using HashSet + + + + Object Path to check + + + + + Converts object into a List of property-names and -values using reflection + + + + + Try get value from , using , and set into + + + + + Scans properties for name (Skips string-compare and value-lookup until finding match) + + + + + Scans properties for name (Skips property value lookup until finding match) + + + + + Scans properties for name + + + + + Binder for retrieving value of + + + + + + + + Reflection helpers for accessing properties. + + + + + Set value parsed from string. + + object instance to set with property + name of the property on + The value to be parsed. + + + + + Get property info + + object which could have property + property name on + result when success. + success. + + + + Try parse of string to (Generic) list, comma separated. + + + If there is a comma in the value, then (single) quote the value. For single quotes, use the backslash as escape + + + + + Attempt to reuse the HashSet.Comparer from the original HashSet-object (Ex. StringComparer.OrdinalIgnoreCase) + + + + + Reflection helpers. + + + + + Gets all usable exported types from the given assembly. + + Assembly to scan. + Usable types from the given assembly. + Types which cannot be loaded are skipped. + + + + Is this a static class? + + + + This is a work around, as Type doesn't have this property. + From: https://stackoverflow.com/questions/1175888/determine-if-a-type-is-static + + + + + Optimized delegate for calling MethodInfo + + Object instance, use null for static methods. + Complete list of parameters that matches the method, including optional/default parameters. + + + + Optimized delegate for calling a constructor + + Complete list of parameters that matches the constructor, including optional/default parameters. Could be null for no parameters. + + + + Creates an optimized delegate for calling the MethodInfo using Expression-Trees + + Method to optimize + Optimized delegate for invoking the MethodInfo + + + + Creates an optimized delegate for calling the constructors using Expression-Trees + + Constructor to optimize + Optimized delegate for invoking the constructor + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + Supported operating systems. + + + If you add anything here, make sure to add the appropriate detection + code to + + + + + Unknown operating system. + + + + + Unix/Linux operating systems. + + + + + Desktop versions of Windows (95,98,ME). + + + + + Windows NT, 2000, 2003 and future versions based on NT technology. + + + + + Macintosh Mac OSX + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state that combines ScopeContext MDLC + NDLC for + + + + + Immutable state for ScopeContext Mapped Context (MDLC) + + + + + Immutable state for ScopeContext Nested State (NDLC) + + + + + Immutable state for ScopeContext Single Property (MDLC) + + + + + Immutable state for ScopeContext Multiple Properties (MDLC) + + + + + Immutable state for ScopeContext handling legacy MDLC + NDLC operations + + + + + + + + + + + + + + Collection of targets that should be written to + + + + + Implements a single-call guard around given continuation function. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + + + + Continuation function which implements the single-call guard. + + The exception. + + + + Utilities for dealing with values. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + + + + Gets the fully qualified name of the class invoking the calling method, including the + namespace but not the assembly. + + StackFrame from the calling method + Fully qualified class name + + + + Returns the assembly from the provided StackFrame (If not internal assembly) + + Valid assembly, or null if assembly was internal + + + + Returns the classname from the provided StackFrame (If not from internal assembly) + + + Valid class name, or empty string if assembly was internal + + + + Stream helpers + + + + + Copy to output stream and skip BOM if encoding is UTF8 + + + + + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + .net35 doesn't have a .copyto + + + + Copy stream input to output. Skip the first bytes + + stream to read from + stream to write to + first bytes to skip (optional) + + + + Simple character tokenizer. + + + + + Initializes a new instance of the class. + + The text to be tokenized. + + + + Current position in + + + + + Full text to be parsed + + + + + Check current char while not changing the position. + + + + + + Read the current char and change position + + + + + + Get the substring of the + + + + + + + + Helpers for , which is used in e.g. layout renderers. + + + + + Renders the specified log event context item and appends it to the specified . + + append to this + value to be appended + format string. If @, then serialize the value with the Default JsonConverter. + provider, for example culture + NLog string.Format interface + + + + Appends int without using culture, and most importantly without garbage + + + value to append + + + + Appends uint without using culture, and most importantly without garbage + + Credits Gavin Pugh - https://www.gavpugh.com/2010/04/01/xnac-avoiding-garbage-when-working-with-stringbuilder/ + + + value to append + + + + Convert DateTime into UTC and format to yyyy-MM-ddTHH:mm:ss.fffffffZ - ISO 8601 Compliant Date Format (Round-Trip-Time) + + + + + Clears the provider StringBuilder + + + + + + Copies the contents of the StringBuilder to the MemoryStream using the specified encoding (Without BOM/Preamble) + + StringBuilder source + MemoryStream destination + Encoding used for converter string into byte-stream + Helper char-buffer to minimize memory allocations + + + + Copies the contents of the StringBuilder to the destination StringBuilder + + StringBuilder source + StringBuilder destination + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle character to search for + + Index of the first occurrence (Else -1) + + + + Scans the StringBuilder for the position of needle character + + StringBuilder source + needle characters to search for + + Index of the first occurrence (Else -1) + + + + Compares the contents of two StringBuilders + + + Correct implementation of that also works when is not the same + + True when content is the same + + + + Compares the contents of a StringBuilder and a String + + True when content is the same + + + + Append a number and pad with 0 to 2 digits + + append to this + the number + + + + Append a number and pad with 0 to 4 digits + + append to this + the number + + + + Append a numeric type (byte, int, double, decimal) as string + + + + + Helpers for . + + + + + IsNullOrWhiteSpace, including for .NET 3.5 + + + + + + + Replace string with + + + + + + The same reference of nothing has been replaced. + + + Concatenates all the elements of a string array, using the specified separator between each element. + The string to use as a separator. is included in the returned string only if has more than one element. + An collection that contains the elements to concatenate. + A string that consists of the elements in delimited by the string. If is an empty array, the method returns . + + is . + + + + Split a string + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Split a string, optional quoted value + + Text to split + Character to split the + Quote character + + Escape for the , not escape for the + , use quotes for that. + + + + + Represents target with a chain of filters which determine + whether logging should happen. + + + + + Initializes a new instance of the class. + + The target. + The filter chain. + Default action if none of the filters match. + + + + Gets the target. + + The target. + + + + Gets the filter chain. + + The filter chain. + + + + Gets or sets the next item in the chain. + + The next item in the chain. + This is for example the 'target2' logger in writeTo='target1,target2' + + + + Gets the stack trace usage. + + A value that determines stack trace handling. + + + + Default action if none of the filters match. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Wraps with a timeout. + + + + + Initializes a new instance of the class. + + The asynchronous continuation. + The timeout. + + + + Continuation function which implements the timeout logic. + + The exception. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + URL Encoding helper. + + + + Allow UnreservedMarks instead of ReservedMarks, as specified by chosen RFC + + + Use RFC2396 standard (instead of RFC3986) + + + Should use lowercase when doing HEX escaping of special characters + + + Replace space ' ' with '+' instead of '%20' + + + Skip UTF8 encoding, and prefix special characters with '%u' + + + + Escape unicode string data for use in http-requests + + unicode string-data to be encoded + target for the encoded result + s for how to perform the encoding + + + + Convert the wide-char into utf8-bytes, and then escape + + + + + + + + + Is allowed? + + + + + + + + Is a-z / A-Z / 0-9 + + + + + + + Prevents the Xamarin linker from linking the target. + + + By applying this attribute all of the members of the target will be kept as if they had been referenced by the code. + + + + + Ensures that all members of this type are preserved + + + + + Flags the method as a method to preserve during linking if the container class is pulled in. + + + + + Helper class for XML + + + + + removes any unusual unicode characters that can't be encoded into XML + + + + + Cleans string of any invalid XML chars found + + unclean string + string with only valid XML chars + + + + Pretest, small text and not escape needed + + + + + + + + Converts object value to invariant format, and strips any invalid xml-characters + + Object value + Object value converted to string + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object value converted to string + + + + XML elements must follow these naming rules: + - Element names are case-sensitive + - Element names must start with a letter or underscore + - Element names can contain letters, digits, hyphens, underscores, and periods + - Element names cannot contain spaces + + + + + + Converts object value to invariant format (understood by JavaScript) + + Object value + Object TypeCode + Check and remove unusual unicode characters from the result string. + Object value converted to string + + + + Safe version of WriteAttributeString + + + + + + + + Safe version of WriteElementSafeString + + + + + + + + + + Safe version of WriteCData + + + + + + + Interface for handling object transformation + + + + + Takes a dangerous (or massive) object and converts into a safe (or reduced) object + + + Null if unknown object, or object cannot be handled + + + + + Used to render the application domain name. + + + + + Create a new renderer + + + + + Create a new renderer + + + + + Format string. Possible values: "Short", "Long" or custom like {0} {1}. Default "Long" + The first parameter is the AppDomain.Id, the second the second the AppDomain.FriendlyName + This string is used in + + + + + + + + + + + + + + + Renders the assembly version information for the entry assembly or a named assembly. + + + As this layout renderer uses reflection and version information is unlikely to change during application execution, + it is recommended to use it in conjunction with the . + + + The entry assembly can't be found in some cases e.g. ASP.NET, unit tests, etc. + + + + + The (full) name of the assembly. If null, using the entry assembly. + + + + + + Gets or sets the type of assembly version to retrieve. + + + Some version type and platform combinations are not fully supported. + - UWP earlier than .NET Standard 1.5: Value for is always returned unless the parameter is specified. + + + + + + The default value to render if the Version is not available + + + + + + Gets or sets the custom format of the assembly version output. + + + Supported placeholders are 'major', 'minor', 'build' and 'revision'. + The default .NET template for version numbers is 'major.minor.build.revision'. See + https://docs.microsoft.com/en-gb/dotnet/api/system.version?view=netframework-4.7.2#remarks + for details. + + + + + + + + + + + + + + + Gets the assembly specified by , or entry assembly otherwise + + + + + Type of assembly version to retrieve. + + + + + Gets the assembly version. + + + + + Gets the file version. + + + + + Gets the product version, extracted from the additional version information. + + + + + Thread identity information (username). + + + + + Gets or sets a value indicating whether username should be included. + + + + + + Gets or sets a value indicating whether domain name should be included. + + + + + + Gets or sets the default value to be used when the User is not set. + + + + + + Gets or sets the default value to be used when the Domain is not set. + + + + + + + + + The information about the garbage collector. + + + + + Gets or sets the property to retrieve. + + + + + + + + + Gets or sets the property of System.GC to retrieve. + + + + + Total memory allocated. + + + + + Total memory allocated (perform full garbage collection first). + + + + + Gets the number of Gen0 collections. + + + + + Gets the number of Gen1 collections. + + + + + Gets the number of Gen2 collections. + + + + + Maximum generation number supported by GC. + + + + + The identifier of the current process. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + The information about the running process. + + + + + Gets or sets the property to retrieve. + + + + + + Gets or sets the format-string to use if the property supports it (Ex. DateTime / TimeSpan / Enum) + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Property of System.Diagnostics.Process to retrieve. + + + + + Base Priority. + + + + + Exit Code. + + + + + Exit Time. + + + + + Process Handle. + + + + + Handle Count. + + + + + Whether process has exited. + + + + + Process ID. + + + + + Machine name. + + + + + Handle of the main window. + + + + + Title of the main window. + + + + + Maximum Working Set. + + + + + Minimum Working Set. + + + + + Non-paged System Memory Size. + + + + + Non-paged System Memory Size (64-bit). + + + + + Paged Memory Size. + + + + + Paged Memory Size (64-bit).. + + + + + Paged System Memory Size. + + + + + Paged System Memory Size (64-bit). + + + + + Peak Paged Memory Size. + + + + + Peak Paged Memory Size (64-bit). + + + + + Peak Virtual Memory Size. + + + + + Peak Virtual Memory Size (64-bit).. + + + + + Peak Working Set Size. + + + + + Peak Working Set Size (64-bit). + + + + + Whether priority boost is enabled. + + + + + Priority Class. + + + + + Private Memory Size. + + + + + Private Memory Size (64-bit). + + + + + Privileged Processor Time. + + + + + Process Name. + + + + + Whether process is responding. + + + + + Session ID. + + + + + Process Start Time. + + + + + Total Processor Time. + + + + + User Processor Time. + + + + + Virtual Memory Size. + + + + + Virtual Memory Size (64-bit). + + + + + Working Set Size. + + + + + Working Set Size (64-bit). + + + + + The name of the current process. + + + + + Gets or sets a value indicating whether to write the full path to the process executable. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Designates a property of the class as an ambient property. + + + non-ambient: ${uppercase:${level}} + ambient : ${level:uppercase} + + + + + Initializes a new instance of the class. + + Ambient property name. + + + + Marks class as layout-renderer and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + The call site source file name. Full callsite + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site (class name, method name and source information). + + + + + Gets or sets a value indicating whether to render the class name. + + + + + + Gets or sets a value indicating whether to render the include the namespace with . + + + + + + Gets or sets a value indicating whether to render the method name. + + + + + + Gets or sets a value indicating whether the method name will be cleaned up if it is detected as an anonymous delegate. + + + + + + Gets or sets a value indicating whether the method and class names will be cleaned up if it is detected as an async continuation + (everything after an await-statement inside of an async method). + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets a value indicating whether to render the source file name and line number. + + + + + + Gets or sets a value indicating whether to include source file path. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + The call site source line number. Full callsite + + + + + Gets or sets the number of frames to skip. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + + + + + + + Format of the ${stacktrace} layout renderer output. + + + + + Raw format (multiline - as returned by StackFrame.ToString() method). + + + + + Flat format (class and method names displayed in a single line). + + + + + Detailed flat format (method signatures displayed in a single line). + + + + + Stack trace renderer. + + + + + Gets or sets the output format of the stack trace. + + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of frames to skip. + + + + + + Gets or sets the stack frame separator string. + + + + + + Logger should capture StackTrace, if it was not provided manually + + + + + + Gets or sets whether to render StackFrames in reverse order + + + + + + + + + + + + Log event context data. + + + + + Initializes a new instance of the class. + + + + + Gets or sets string that will be used to separate key/value pairs. + + + + + + Get or set if empty values should be included. + + A value is empty when null or in case of a string, null or empty string. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets the keys to exclude from the output. If omitted, none are excluded. + + + + + + Enables capture of ScopeContext-properties from active thread context + + + + + Gets or sets how key/value pairs will be formatted. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Log event context data. See . + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Gets or sets whether to perform case-sensitive property-name lookup + + + + + + + + Render a Global Diagnostics Context item. See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Installation parameter (passed to InstallNLogConfig). + + + + + Gets or sets the name of the parameter. + + + + + + + + + Render a Mapped Diagnostic Context item, See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Mapped Diagnostic Logical Context item (based on CallContext). + See + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + + + + Render a Nested Diagnostic Context item. + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested diagnostics context output. + + + + + + + + + Render a Nested Diagnostic Logical Context item (Async scope) + See + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the indent token. + + + + + + + + + Renders the nested states from like a callstack + + + + + Gets or sets the number of top stack frames to be rendered. + + + + + + Gets or sets the number of bottom stack frames to be rendered. + + + + + + Gets or sets the separator to be used for concatenating nested logical context output. + + + + + + Gets or sets how to format each nested state. Ex. like JSON = @ + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Renders specified property-item from + + + + + Gets or sets the name of the item. + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Timing Renderer (Async scope) + + + + + Gets or sets whether to only include the duration of the last scope created + + + + + + Gets or sets whether to just display the scope creation time, and not the duration + + + + + + Gets or sets the TimeSpan format. Can be any argument accepted by TimeSpan.ToString(format). + + When Format has not been specified, then it will render TimeSpan.TotalMilliseconds + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + A renderer that puts into log a System.Diagnostics trace correlation id. + + + + + + + + A counter value (increases on each layout rendering). + + + + + Gets or sets the initial value of the counter. + + + + + + Gets or sets the value to be added to the counter after each layout rendering. + + + + + + Gets or sets the name of the sequence. Different named sequences can have individual values. + + + + + + + + + Globally-unique identifier (GUID). + + + + + Gets or sets the GUID format as accepted by Guid.ToString() method. + + + + + + Generate the Guid from the NLog LogEvent (Will be the same for all targets) + + + + + + + + + The sequence ID + + + + + + + + Current date and time. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the culture used for rendering. + + + + + + Gets or sets the date format. Can be any argument accepted by DateTime.ToString(format). + + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The date and time in a long, sortable format yyyy-MM-dd HH:mm:ss.ffff. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The process time in format HH:mm:ss.mmm. + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Write timestamp to builder with format hh:mm:ss:fff + + + + + The short date in a sortable format yyyy-MM-dd. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + + + + The Ticks value of current date and time. + + + + + + + + The time in a 24-hour, sortable format HH:mm:ss.mmmm. + + + + + Gets or sets a value indicating whether to output UTC time instead of local time. + + + + + + Gets or sets a value indicating whether to output in culture invariant format + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + DB null for a database + + + + + + + + The current application domain's base directory. + + + + + cached + + + + + Use base dir of current process. Alternative one can just use ${processdir} + + + + + + Fallback to the base dir of current process, when AppDomain.BaseDirectory is Temp-Path (.NET Core 3 - Single File Publish) + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the base directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the base directory. + + + + + + + + + The current working directory of the application. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the current directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the current directory. + + + + + + + + + The directory where NLog.dll is located. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + + + + The executable directory from the FileName, + using the current process + + + + + Gets or sets the name of the file to be Path.Combine()'d with the process directory. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the process directory. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + System special folder path (includes My Documents, My Music, Program Files, Desktop, and more). + + + + + Gets or sets the system special folder to use. + + + Full list of options is available at MSDN. + The most common ones are: +
    +
  • ApplicationData - roaming application data for current user.
  • +
  • CommonApplicationData - application data for all users.
  • +
  • MyDocuments - My Documents
  • +
  • DesktopDirectory - Desktop directory
  • +
  • LocalApplicationData - non roaming application data
  • +
  • Personal - user profile directory
  • +
  • System - System directory
  • +
+
+ +
+ + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + System special folder path from + + + + + Initializes a new instance of the class. + + + + + A temporary directory. + + + + + Gets or sets the name of the file to be Path.Combine()'d with the directory name. + + + + + + Gets or sets the name of the directory to be Path.Combine()'d with the directory name. + + + + + + + + + + + + The OS dependent directory separator + + + + + + + + Render information of + for the exception passed to the logger call + + + + + Gets or sets the key to search the exception Data for + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Exception information provided through + a call to one of the Logger.*Exception() methods. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the format of the output. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + + + Gets or sets the format of the output of inner exceptions. Must be a comma-separated list of exception + properties: Message, Type, ShortType, ToString, Method, StackTrace. + This parameter value is case-insensitive. + + + + + + Gets or sets the separator used to concatenate parts specified in the Format. + + + + + + Gets or sets the separator used to concatenate exception data specified in the Format. + + + + + + Gets or sets the maximum number of inner exceptions to include in the output. + By default inner exceptions are not enabled for compatibility with NLog 1.0. + + + + + + Gets or sets the separator between inner exceptions. + + + + + + Gets or sets whether to render innermost Exception from + + + + + + Gets or sets whether to collapse exception tree using + + + + + + Gets the formats of the output of inner exceptions to be rendered in target. + + + + + + Gets the formats of the output to be rendered in target. + + + + + + + + + Appends the Message of an Exception to the specified . + + The to append the rendered data to. + The exception containing the Message to append. + + + + Appends the method name from Exception's stack trace to the specified . + + The to append the rendered data to. + The Exception whose method name should be appended. + + + + Appends the stack trace from an Exception to the specified . + + The to append the rendered data to. + The Exception whose stack trace should be appended. + + + + Appends the result of calling ToString() on an Exception to the specified . + + The to append the rendered data to. + The Exception whose call to ToString() should be appended. + + + + Appends the type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose type should be appended. + + + + Appends the short type of an Exception to the specified . + + The to append the rendered data to. + The Exception whose short type should be appended. + + + + Appends the application source of an Exception to the specified . + + The to append the rendered data to. + The Exception whose source should be appended. + + + + Appends the HResult of an Exception to the specified . + + The to append the rendered data to. + The Exception whose HResult should be appended. + + + + Appends the contents of an Exception's Data property to the specified . + + The to append the rendered data to. + The Exception whose Data property elements should be appended. + + + + Appends all the serialized properties of an Exception into the specified . + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Appends all the additional properties of an Exception like Data key-value-pairs + + The to append the rendered data to. + The Exception whose properties should be appended. + + + + Split the string and then compile into list of Rendering formats. + + + + + Renders contents of the specified file. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the name of the file. + + + + + + Gets or sets the encoding used in the file. + + The encoding. + + + + + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Name used in config without ${}. E.g. "test" could be used as "${test}". + + + + + Method that renders the layout. + + This public property will be removed in NLog 5. + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + Render the value for this log event + + The logging event. + The value. + + + + A layout renderer which could have different behavior per instance by using a . + + + + + Initializes a new instance of the class. + + Name without ${}. + Method that renders the layout. + + + + Thread identity information (name and authentication information). + + + + + Gets or sets the separator to be used when concatenating + parts of identity information. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.Name. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.AuthenticationType. + + + + + + Gets or sets a value indicating whether to render Thread.CurrentPrincipal.Identity.IsAuthenticated. + + + + + + + + + Render environmental information related to logging events. + + + + + Gets the logging configuration this target is part of. + + + + + Value formatter + + + + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + String representation of a layout renderer. + + + + + + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Renders the value of layout renderer in the context of the specified log event. + + The log event. + The layout render output is appended to builder + + + + Renders the value of layout renderer in the context of the specified log event into . + + The to append the rendered data to. + Logging event. + + + + Initializes the layout renderer. + + + + + Closes the layout renderer. + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + + + Get the for rendering the messages to a + + LogEvent with culture + Culture in on Layout level + + + is preferred + + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer. + + Short-cut for registering to default + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom layout renderer with a callback function . The callback receives the logEvent and the current configuration. + + Renderer with callback func + + + + Resolves the interface service-type from the service-repository + + + + + Format of the ${level} layout renderer output. + + + + + Render the LogLevel standard name. + + + + + Render the first character of the level. + + + + + Render the first character of the level. + + + + + Render the ordinal (aka number) for the level. + + + + + Render the LogLevel full name, expanding Warn / Info abbreviations + + + + + Render the LogLevel as 3 letter abbreviations (Trc, Dbg, Inf, Wrn, Err, Ftl) + + + + + The log level. + + + + + Gets or sets a value indicating the output format of the level. + + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + + + + A string literal. + + + This is used to escape '${' sequence + as ;${literal:text=${}' + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The literal text value. + This is used by the layout compiler. + + + + Gets or sets the literal text. + + + + + + + + + A string literal with a fixed raw value + + + + + Initializes a new instance of the class. + + The literal text value. + + Fixed raw value + This is used by the layout compiler. + + + + XML event description compatible with log4j, Chainsaw and NLogViewer. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets a value indicating whether the XML should use spaces for indentation. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + + + + + + + The logger name. + + + + + Gets or sets a value indicating whether to render short logger name (the part after the trailing dot character). + + + + + + + + + The environment variable. + + + + + Gets or sets the name of the environment variable. + + + + + + Gets or sets the default value to be used when the environment variable is not set. + + + + + + + + + The host name that the process is running on. + + + + + + + + Gets the host name and falls back to computer name if not available + + + + + Tries the lookup value. + + The lookup function. + Type of the lookup. + + + + + + + + The IP address from the network interface card (NIC) on the local machine + + + Skips loopback-adapters and tunnel-interfaces. Skips devices without any MAC-address + + + + + Get or set whether to prioritize IPv6 or IPv4 (default) + + + + + + + + + + + + + + + The machine name that the process is running on. + + + + + + + + + + + The formatted log message. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether to log exception along with message. + + + + + + Gets or sets the string that separates message from the exception. + + + + + + Gets or sets whether it should render the raw message without formatting parameters + + + + + + + + + A newline literal. + + + + + + + + The identifier of the current thread. + + + + + + + + The name of the current thread. + + + + + + + + Render a NLog Configuration variable assigned from API or loaded from config-file + + + + + Gets or sets the name of the NLog variable. + + + + + + Gets or sets the default value to be used when the variable is not set. + + Not used if Name is null + + + + + Gets the configuration variable layout matching the configured Name + + Mostly relevant for the scanning of active NLog Layouts (Ex. CallSite capture) + + + + + + + Try lookup the configuration variable layout matching the configured Name + + + + + + + + Applies caching to another layout output. + + + The value of the inner layout will be rendered only once and reused subsequently. + + + + + A value indicating when the cache is cleared. + + + + Never clear the cache. + + + Clear the cache whenever the is initialized. + + + Clear the cache whenever the is closed. + + + + Gets or sets a value indicating whether this is enabled. + + + + + + Gets or sets a value indicating when the cache is cleared. + + + + + + Cachekey. If the cachekey changes, resets the value. For example, the cachekey would be the current day.s + + + + + + Gets or sets a value indicating how many seconds the value should stay cached until it expires + + + + + + + + + + + + + + + + + + Filters characters not allowed in the file names by replacing them with safe character. + + + + + Gets or sets a value indicating whether to modify the output of this renderer so it can be used as a part of file path + (illegal characters are replaced with '_'). + + + + + + + + + + + + Escapes output of another layout using JSON rules. + + + + + Gets or sets whether output should be encoded with Json-string escaping. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + Left part of a text + + + + + Gets or sets the length in characters. + + + + + + Same as -property, so it can be used as ambient property. + + + ${message:truncate=80} + + + + + + + + + + + + Converts the result of another layout output to lower case. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:tolower} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Render the non-raw value of an object. + + For performance and/or full (formatted) control of the output. + + + + Gets or sets a value indicating whether to disable the IRawValue-interface + + A value of true if IRawValue-interface should be ignored; otherwise, false. + + + + + + + + + + + Render a single property of a object + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + Shortcut for + + + + + + Gets or sets the object-property-navigation-path for lookup of nested property + + + + + + Format string for conversion from object to string. + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + + + + Only outputs the inner layout when exception has been defined for log message. + + + + + If is not found, print this layout. + + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + ${onhasproperties:, Properties\: ${all-event-properties}} + + + + + If is not found, print this layout. + + + + + + + + + + + + Horizontal alignment for padding layout renderers. + + + + + When layout text is too long, align it to the left + (remove characters from the right). + + + + + When layout text is too long, align it to the right + (remove characters from the left). + + + + + Applies padding to another layout output. + + + + + Gets or sets the number of characters to pad the output to. + + + Positive padding values cause left padding, negative values + cause right padding to the desired width. + + + + + + Gets or sets the padding character. + + + + + + Gets or sets a value indicating whether to trim the + rendered text to the absolute value of the padding length. + + + + + + Gets or sets a value indicating whether a value that has + been truncated (when is true) + will be left-aligned (characters removed from the right) + or right-aligned (characters removed from the left). The + default is left alignment. + + + + + + + + + + + + Replaces a string in the output of another layout with another string. + + + ${replace:searchFor=\\n+:replaceWith=-:regex=true:inner=${message}} + + + + + Gets or sets the text to search for. + + The text search for. + + + + + Gets or sets a value indicating whether regular expressions should be used. + + A value of true if regular expressions should be used otherwise, false. + + + + + Gets or sets the replacement string. + + The replacement string. + + + + + Gets or sets the group name to replace when using regular expressions. + Leave null or empty to replace without using group name. + + The group name. + + + + + Gets or sets a value indicating whether to ignore case. + + A value of true if case should be ignored when searching; otherwise, false. + + + + + Gets or sets a value indicating whether to search for whole words. + + A value of true if whole words should be searched for; otherwise, false. + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + + + + + + + This class was created instead of simply using a lambda expression so that the "ThreadAgnosticAttributeTest" will pass + + + + + A match evaluator for Regular Expression based replacing + + Input string. + Group name in the regex. + Replace value. + Match from regex. + Groups replaced with . + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets a value indicating the string that should be used for separating lines. + + + + + + + + + + + + Right part of a text + + + + + Gets or sets the length in characters. + + + + + + + + + + + + Decodes text "encrypted" with ROT-13. + + + See https://en.wikipedia.org/wiki/ROT13. + + + + + Gets or sets the layout to be wrapped. + + The layout to be wrapped. + This variable is for backwards compatibility + + + + + Encodes/Decodes ROT-13-encoded string. + + The string to be encoded/decoded. + Encoded/Decoded text. + + + + + + + + + + Encodes/Decodes ROT-13-encoded string. + + + + + Substring the result + + + ${substring:${level}:start=2:length=2} + ${substring:${level}:start=-2:length=2} + ${substring:Inner=${level}:start=2:length=2} + + + + + Gets or sets the start index. + + Index + + + + + Gets or sets the length in characters. If null, then the whole string + + Index + + + + + + + + + + + Calculate start position + + 0 or positive number + + + + Calculate needed length + + 0 or positive number + + + + Trims the whitespace from the result of another layout renderer. + + + + + Gets or sets a value indicating whether lower case conversion should be applied. + + A value of true if lower case conversion should be applied; otherwise, false. + + + + + + + + + + + Converts the result of another layout output to upper case. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + ${level:uppercase} // [AmbientProperty] + + + + + Gets or sets a value indicating whether upper case conversion should be applied. + + A value of true if upper case conversion should be applied otherwise, false. + + + + + Same as -property, so it can be used as ambient property. + + + ${level:toupper} + + + + + + Gets or sets the culture used for rendering. + + + + + + + + + + + + Encodes the result of another layout output for use with URLs. + + + + + Initializes a new instance of the class. + + + + + Gets or sets a value indicating whether spaces should be translated to '+' or '%20'. + + A value of true if space should be translated to '+'; otherwise, false. + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + + + + + + + Outputs alternative layout when the inner layout produces empty result. + + + + + Gets or sets the layout to be rendered when original layout produced empty result. + + + + + + + + + + + + + + + Only outputs the inner layout when the specified condition has been met. + + + + + Gets or sets the condition that must be met for the layout to be printed. + + + + + + If is not met, print this layout. + + + + + + + + + + + + Replaces newline characters from the result of another layout renderer with spaces. + + + + + Gets or sets the line length for wrapping. + + + Only positive values are allowed + + + + + + + + + Base class for s which wrapping other s. + + This has the property (which is default) and can be used to wrap. + + + ${uppercase:${level}} //[DefaultParameter] + ${uppercase:Inner=${level}} + + + + + Gets or sets the wrapped layout. + + [DefaultParameter] so Inner: is not required if it's the first + + + + + + + + + + + + Appends the rendered output from -layout and transforms the added output (when necessary) + + Logging event. + The to append the rendered data to. + Start position for any necessary transformation of . + + + + Transforms the output of another layout. + + Logging event. + Output to be transform. + Transformed text. + + + + Transforms the output of another layout. + + Output to be transform. + Transformed text. + + + + Renders the inner layout contents. + + The log event. + Contents of inner layout. + + + + Base class for s which wrapping other s. + + This expects the transformation to work on a + + + + + + + + + + + Transforms the output of another layout. + + Output to be transform. + + + + Renders the inner layout contents. + + + for the result + + + + + + + + + + Converts the result of another layout output to be XML-compliant. + + + + + Gets or sets whether output should be encoded with Xml-string escaping. + + Ensures always valid XML, but gives a performance hit + + + + + Gets or sets a value indicating whether to transform newlines (\r\n) into ( ) + + + + + + + + + + + + A layout containing one or more nested layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the inner layouts. + + + + + + + + + + + + + + + + + + + + + A column in the CSV. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column. + The layout of the column. + + + + Gets or sets the name of the column. + + + + + + Gets or sets the layout of the column. + + + + + + Gets or sets the override of Quoting mode + + + and are faster than the default + + + + + + Specifies allowed column delimiters. + + + + + Automatically detect from regional settings. + + + + + Comma (ASCII 44). + + + + + Semicolon (ASCII 59). + + + + + Tab character (ASCII 9). + + + + + Pipe character (ASCII 124). + + + + + Space character (ASCII 32). + + + + + Custom string, specified by the CustomDelimiter. + + + + + A specialized layout that renders CSV-formatted events. + + + + If is set, then the header generation with column names will be disabled. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Gets or sets a value indicating whether CVS should include header. + + A value of true if CVS should include header; otherwise, false. + + + + + Gets or sets the column delimiter. + + + + + + Gets or sets the quoting mode. + + + + + + Gets or sets the quote Character. + + + + + + Gets or sets the custom column delimiter value (valid when ColumnDelimiter is set to 'Custom'). + + + + + + + + + + + + + + + Get the headers with the column names. + + + + + + Header with column names for CSV layout. + + + + + Initializes a new instance of the class. + + The parent. + + + + + + + + + + + + + + + + Specifies CSV quoting modes. + + + + + Quote all column (Fast) + + + + + Quote nothing (Very fast) + + + + + Quote only whose values contain the quote symbol or the separator (Slow) + + + + + A specialized layout that renders LogEvent as JSON-Array + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Gets the array of items to include in JSON-Array + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + + + + + + + + + + + + + JSON attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with json-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded as Json-String-Property, or be treated as valid json. + + + + + + Gets or sets a value indicating whether to escape non-ascii characters + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A specialized layout that renders JSON-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the array of attributes' configurations. + + + + + + Gets or sets the option to suppress the extra spaces in the output json + + + + + + Gets or sets the option to render the empty object value {} + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as JSON) + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to exclude null/empty properties from the log event (as JSON) + + + + + + List of property names to exclude when is true + + + + + + How far should the JSON serializer follow object references before backing off + + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + If not set explicitly then the value of the parent will be used as default. + + + + + + + + + + + + + + + + + + + + + Abstract interface that layouts must implement. + + + + + Is this layout initialized? See + + + + + Gets a value indicating whether this layout is thread-agnostic (can be rendered on any thread). + + + Layout is thread-agnostic if it has been marked with [ThreadAgnostic] attribute and all its children are + like that as well. + + Thread-agnostic layouts only use contents of for its output. + + + + + Gets the level of stack trace information required for rendering. + + + + + Gets the logging configuration this target is part of. + + + + + Converts a given text to a . + + Text to be converted. + object represented by the text. + + + + Implicitly converts the specified string to a . + + The layout string. + Instance of .' + + + + Implicitly converts the specified string to a . + + The layout string. + The NLog factories to use when resolving layout renderers. + Instance of . + + + + Implicitly converts the specified string to a . + + The layout string. + Whether should be thrown on parse errors (false = replace unrecognized tokens with a space). + Instance of . + + + + Create a from a lambda method. + + Method that renders the layout. + Tell if method is safe for concurrent threading. + Instance of . + + + + Precalculates the layout for the specified log event and stores the result + in per-log event cache. + + Only if the layout doesn't have [ThreadAgnostic] and doesn't contain layouts with [ThreadAgnostic]. + + The log event. + + Calling this method enables you to store the log event in a buffer + and/or potentially evaluate it in another thread even though the + layout may contain thread-dependent renderer. + + + + + Renders formatted output using the log event as context. + + Inside a , is preferred for performance reasons. + The logging event. + The formatted output as string. + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the formatted output to target + + + + Optimized version of that works best when + override of is available. + + The logging event. + Appends the string representing log event to target + Should rendering result be cached on LogEventInfo + + + + Valid default implementation of , when having implemented the optimized + + The logging event. + The rendered layout. + + + + Renders formatted output using the log event as context. + + The logging event. + Appends the formatted output to target + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Initializes the layout. + + + + + Closes the layout. + + + + + Renders formatted output using the log event as context. + + The logging event. + The formatted output. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Register a custom Layout. + + Short-cut for registering to default + Type of the Layout. + Name of the Layout. + + + + Optimized version of for internal Layouts, when + override of is available. + + + + + Try get value + + + rawValue if return result is true + false if we could not determine the rawValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur + + + + Marks class as Layout and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The Layout type-alias for use in NLog configuration. + + + + Parses layout strings. + + + + + Add to + + + + + + + Options available for + + + + + Default options + + + + + Layout renderer method can handle concurrent threads + + + + + Layout renderer method is agnostic to current thread context. This means it will render the same result independent of thread-context. + + + + + A specialized layout that supports header and footer. + + + + + Gets or sets the body layout (can be repeated multiple times). + + + + + + Gets or sets the header layout. + + + + + + Gets or sets the footer layout. + + + + + + + + + + + + A specialized layout that renders Log4j-compatible XML events. + + + + This layout is not meant to be used explicitly. Instead you can use ${log4jxmlevent} layout renderer. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Gets the instance that renders log events. + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets whether the log4j:throwable xml-element should be written as CDATA + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + + + + + + + Represents a string with embedded placeholders that can render contextual information. + + + + This layout is not meant to be used explicitly. Instead you can just use a string containing layout + renderers everywhere the layout is required. + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout string to parse. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + + + + Initializes a new instance of the class. + + The layout string to parse. + The NLog factories to use when creating references to layout renderers. + Whether should be thrown on parse errors. + + + + Original text before compile to Layout renderes + + + + + Gets or sets the layout text. + + + + + + Is the message fixed? (no Layout renderers used) + + + + + Get the fixed text. Only set when is true + + + + + Is the message a simple formatted string? (Can skip StringBuilder) + + + + + Gets a collection of objects that make up this layout. + + + + + Gets a collection of objects that make up this layout. + + + + + Gets the level of stack trace information required for rendering. + + + + + Converts a text to a simple layout. + + Text to be converted. + A object. + + + + Escapes the passed text so that it can + be used literally in all places where + layout is normally expected without being + treated as layout. + + The text to be escaped. + The escaped text. + + Escaping is done by replacing all occurrences of + '${' with '${literal:text=${}' + + + + + Evaluates the specified text by expanding all layout renderers. + + The text to be evaluated. + Log event to be used for evaluation. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + Evaluates the specified text by expanding all layout renderers + in new context. + + The text to be evaluated. + The input text with all occurrences of ${} replaced with + values provided by the appropriate layout renderers. + + + + + + + + + + + + + + + + + + + + + + Typed Layout for easy conversion from NLog Layout logic to a simple value (ex. integer or enum) + + + + + + Is fixed value? + + + + + Fixed value + + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + + + + Initializes a new instance of the class. + + Dynamic NLog Layout + Format used for parsing string-value into result value type + Culture used for parsing string-value into result value type + + + + Initializes a new instance of the class. + + Fixed value + + + + Render Value + + Log event for rendering + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Renders the value and converts the value into string format + + + Only to implement abstract method from , and only used when calling + + + + + + + + + + + + + + + + + + + + + + + Implements Equals using + + + + + + + + Converts a given value to a . + + Text to be converted. + + + + Converts a given text to a . + + Text to be converted. + + + + Implements the operator == using + + + + + Implements the operator != using + + + + + Provides access to untyped value without knowing underlying generic type + + + + + Typed Value that is easily configured from NLog.config file + + + + + Initializes a new instance of the class. + + + + + Gets or sets the layout that will render the result value + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets the fallback value should be null (instead of default value of ) when result value is not available + + + + + + Gets or sets format used for parsing parameter string-value for type-conversion + + + + + + Gets or sets the culture used for parsing parameter string-value for type-conversion + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + XML attribute. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + Encode value with xml-encode + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the result value type, for conversion of layout rendering output + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + A XML Element + + + + + + + + + + + Name of the element + + + + + + Value inside the element + + + + + + Gets or sets whether output should be encoded with Xml-string escaping, or be treated as valid xml-element-value + + + + + + A specialized layout that renders XML-formatted events. + + + + + Initializes a new instance of the class. + + The name of the top XML node + The value of the top XML node + + + + Name of the XML element + + Upgrade to private protected when using C# 7.2 + + + + Value inside the XML element + + Upgrade to private protected when using C# 7.2 + + + + Auto indent and create new lines + + + + + + Gets the array of xml 'elements' configurations. + + + + + + Gets the array of 'attributes' configurations for the element + + + + + + Gets or sets whether a ElementValue with empty value should be included in the output + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + Gets or sets whether to include the contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets a value indicating whether to include contents of the dictionary. + + + + + + Gets or sets the option to include all properties from the log event (as XML) + + + + + + List of property names to exclude when is true + + + + + + XML element name to use when rendering properties + + + Support string-format where {0} means property-key-name + + Skips closing element tag when having configured + + + + + + XML attribute name to use when rendering property-key + + When null (or empty) then key-attribute is not included + + + Will replace newlines in attribute-value with + + + + + + XML attribute name to use when rendering property-value + + When null (or empty) then value-attribute is not included and + value is formatted as XML-element-value + + + Skips closing element tag when using attribute for value + + Will replace newlines in attribute-value with + + + + + + XML element name to use for rendering IList-collections items + + + + + + How far should the XML serializer follow object references before backing off + + + + + + + + + + + + + + + write attribute, only if is not empty + + + + + rendered + + + + + + + A specialized layout that renders XML-formatted events. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + + + + Name of the root XML element + + + + + + Value inside the root XML element + + + + + + Determines whether or not this attribute will be Xml encoded. + + + + + + Extensions for NLog . + + + + + Renders the logevent into a result-value by using the provided layout + + Inside a , is preferred for performance reasons. + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + A fluent builder for logging events to NLog. + + + + + Initializes a new instance of the class. + + The to send the log event. + + + + Initializes a new instance of the class. + + The to send the log event. + The log level. LogEvent is only created when is enabled for + + + + The logger to write the log event to + + + + + Logging event that will be written + + + + + Sets a per-event context property on the logging event. + + The name of the context property. + The value of the context property. + + + + Sets multiple per-event context properties on the logging event. + + The properties to set. + + + + Sets the information of the logging event. + + The exception information of the logging event. + + + + Sets the timestamp of the logging event. + + The timestamp of the logging event. + + + + Sets the log message on the logging event. + + A to be written. + + + + Sets the log message and parameters for formatting for the logging event. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + A containing format items. + The first argument to format. + The second argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing format items. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Sets the log message and parameters for formatting on the logging event. + + A containing format items. + Arguments to format. + + + + Sets the log message and parameters for formatting on the logging event. + + An object that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the log event to the underlying logger. + + The class of the caller to the method. This is captured by the NLog engine when necessary + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + The log level. Optional but when assigned to then it will discard the LogEvent. + The method or property name of the caller to the method. This is set at by the compiler. + The full path of the source file that contains the caller. This is set at by the compiler. + The line number in the source file at which the method is called. This is set at by the compiler. + + + + Writes the log event to the underlying logger. + + Type of custom Logger wrapper. + + + + Represents the logging event. + + + + + Gets the date of the first log event created. + + + + + The formatted log message. + + + + + The log message including any parameter placeholders + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message including parameter placeholders. + Already parsed message template parameters. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + Log message. + List of event-properties + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + + + + Initializes a new instance of the class. + + Log level. + Override default Logger name. Default is used when null + An IFormatProvider that supplies culture-specific formatting information. + Log message including parameter placeholders. + Parameter array. + Exception information. + + + + Gets the unique identifier of log event which is automatically generated + and monotonously increasing. + + + + + Gets or sets the timestamp of the logging event. + + + + + Gets or sets the level of the logging event. + + + + + Gets a value indicating whether stack trace has been set for this event. + + + + + Gets the stack frame of the method that did the logging. + + + + + Gets the number index of the stack frame that represents the user + code (not the NLog code). + + + + + Gets the entire stack trace. + + + + + Gets the callsite class name + + + + + Gets the callsite member function name + + + + + Gets the callsite source file path + + + + + Gets the callsite source file line number + + + + + Gets or sets the exception information. + + + + + Gets or sets the logger name. + + + + + Gets or sets the log message including any parameter placeholders. + + + + + Gets or sets the parameter values or null if no parameters have been specified. + + + + + Gets or sets the format provider that was provided while logging or + when no formatProvider was specified. + + + + + Gets or sets the message formatter for generating + Uses string.Format(...) when nothing else has been configured. + + + + + Gets the formatted message. + + + + + Checks if any per-event properties (Without allocation) + + + + + Gets the dictionary of per-event context properties. + + + + + Gets the dictionary of per-event context properties. + Internal helper for the PropertiesDictionary type. + + Create the event-properties dictionary, even if no initial template parameters + Provided when having parsed the message template and capture template parameters (else null) + + + + + Gets the named parameters extracted from parsing as MessageTemplate + + + + + Creates the null event. + + Null log event. + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + The parameters. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + Instance of . + + + + Creates the log event. + + The log level. + Override default Logger name. Default is used when null + The exception. + The format provider. + The message. + The parameters. + Instance of . + + + + Creates from this by attaching the specified asynchronous continuation. + + The asynchronous continuation. + Instance of with attached continuation. + + + + Returns a string representation of this log event. + + String representation of the log event. + + + + Sets the stack trace for the event info. + + The stack trace. + Index of the first user stack frame within the stack trace (Negative means NLog should skip stackframes from System-assemblies). + + + + Sets the details retrieved from the Caller Information Attributes + + + + + + + + + Specialized LogFactory that can return instances of custom logger types. + + Use this only when a custom Logger type is defined. + The type of the logger to be returned. Must inherit from . + + + + Gets the logger with type . + + The logger name. + An instance of . + + + + Gets a custom logger with the full name of the current class (so namespace and class name) and type . + + An instance of . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates and manages instances of objects. + + + + + Internal for unit tests + + + + + Overwrite possible file paths (including filename) for possible NLog config files. + When this property is null, the default file paths ( are used. + + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Initializes static members of the LogManager class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The config. + + + + Initializes a new instance of the class. + + The config loader + The custom AppEnvironmnet override + + + + Gets the current . + + + + + Gets or sets a value indicating whether exceptions should be thrown. See also . + + A value of true if exception should be thrown; otherwise, false. + By default exceptions are not thrown under any circumstances. + + + + Gets or sets a value indicating whether should be thrown. + + If null then is used. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Repository of interfaces used by NLog to allow override for dependency injection + + + + + Gets or sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets the default culture info to use as . + + + Specific culture info or null to use + + + + + Performs application-defined tasks associated with freeing, releasing, or resetting + unmanaged resources. + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Creates a logger that discards all log messages. + + Null logger instance. + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + The logger with type . + Type of the logger + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The type of the logger to create. The type must inherit from + The logger of type . + This method introduces performance hit, because of StackTrace capture. + Make sure you are not calling this method in a loop. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the type parameter. + + Name of the logger. + Type of the logger + The logger reference with type . Multiple calls to GetLogger with the same argument + are not guaranteed to return the same logger reference. + + + + Gets the specified named logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The type of the logger to create. The type must inherit from . + The logger of type . Multiple calls to GetLogger with the + same argument aren't guaranteed to return the same logger reference. + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger and recalculates their + target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time + will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages + after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flushes any pending log messages on all appenders. + + Config containing Targets to Flush + Flush completed notification (success / timeout) + Optional timeout that guarantees that completed notification is called. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Raises the event when the configuration is reloaded. + + Event arguments. + + + + Raises the event when the configuration is reloaded. + + Event arguments + + + + Currently this is disposing? + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; + false to release only unmanaged resources. + + + + Dispose all targets, and shutdown logging. + + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Get file paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Overwrite the candidates paths (including filename) for the possible NLog config files. + + The file paths to the possible config file + + + + Clear the candidate file paths and return to the defaults. + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Logger cache key. + + + + + Serves as a hash function for a particular type. + + + + + Determines if two objects are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Determines if two objects of the same type are equal in value. + + Other object to compare to. + True if objects are equal, false otherwise. + + + + Logger cache. + + + + + Inserts or updates. + + + + + + + Loops through all cached loggers and removes dangling loggers that have been garbage collected. + + + + + Internal for unit tests + + + + + Enables logging in implementation. + + + + + Initializes a new instance of the class. + + The factory. + + + + Enables logging. + + + + + Logging methods which only are executed when the DEBUG conditional compilation symbol is set. + + Remarks: + The DEBUG conditional compilation symbol is default enabled (only) in a debug build. + + If the DEBUG conditional compilation symbol isn't set in the calling library, the compiler will remove all the invocations to these methods. + This could lead to better performance. + + See: https://msdn.microsoft.com/en-us/library/4xssyw96%28v=vs.90%29.aspx + + + Provides logging interface and utility functions. + + + Auto-generated Logger members for binary compatibility with NLog 1.0. + + + Provides logging interface and utility functions. + + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Debug level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + A to be written. + + + + Writes the diagnostic message at the Trace level. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + Only executed when the DEBUG conditional compilation symbol is set. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + Only executed when the DEBUG conditional compilation symbol is set. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + Only executed when the DEBUG conditional compilation symbol is set. + A containing one format item. + The argument to format. + + + + Gets a value indicating whether logging is enabled for the Trace level. + + A value of if logging is enabled for the Trace level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Debug level. + + A value of if logging is enabled for the Debug level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Info level. + + A value of if logging is enabled for the Info level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Warn level. + + A value of if logging is enabled for the Warn level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Error level. + + A value of if logging is enabled for the Error level, otherwise it returns . + + + + Gets a value indicating whether logging is enabled for the Fatal level. + + A value of if logging is enabled for the Fatal level, otherwise it returns . + + + + Writes the diagnostic message at the Trace level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Trace level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Trace level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Trace level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Trace level. + + Log message. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Trace level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Debug level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Debug level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Debug level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Debug level. + + Log message. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Debug level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Info level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Info level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Info level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Info level. + + Log message. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Info level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Info level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Info level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Warn level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Warn level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Warn level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Warn level. + + Log message. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Warn level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Error level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Error level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Error level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Error level. + + Log message. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Error level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Error level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Error level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified format provider and format parameters. + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + Type of the value. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the Fatal level. + + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the Fatal level using the specified parameters and formatting them with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level. + + Log message. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + + + + Writes the diagnostic message and exception at the Fatal level. + + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message and exception at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + An exception to be logged. + Arguments to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameter. + + The type of the argument. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + A to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter and formatting it with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified value as a parameter. + + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level. + + A to be written. + + + + Writes the diagnostic message at the Trace level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Trace level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Trace level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level. + + A to be written. + + + + Writes the diagnostic message at the Debug level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Debug level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Debug level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level. + + A to be written. + + + + Writes the diagnostic message at the Info level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Info level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Info level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level. + + A to be written. + + + + Writes the diagnostic message at the Warn level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Warn level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Warn level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level. + + A to be written. + + + + Writes the diagnostic message at the Error level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Error level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Error level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level. + + A to be written. + + + + Writes the diagnostic message at the Fatal level. + + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified parameters. + + A containing format items. + First argument to format. + Second argument to format. + Third argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter and formatting it with the supplied format provider. + + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the Fatal level using the specified value as a parameter. + + A containing one format item. + The argument to format. + + + + + + + + + + + + + + + + + + + + + + Initializes a new instance of the class. + + + + + Occurs when logger configuration changes. + + + + + Gets the name of the logger. + + + + + Gets the factory that created this logger. + + + + + Collection of context properties for the Logger. The logger will append it for all log events + + + It is recommended to use for modifying context properties + when same named logger is used at multiple locations or shared by different thread contexts. + + + + + Gets a value indicating whether logging is enabled for the specified level. + + Log level to be checked. + A value of if logging is enabled for the specified level, otherwise it returns . + + + + Creates new logger that automatically appends the specified property to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Property Name + Property Value + New Logger object that automatically appends specified property + + + + Creates new logger that automatically appends the specified properties to all log events (without changing current logger) + + With property, all properties can be enumerated. + + Collection of key-value pair properties + New Logger object that automatically appends specified properties + + + + Updates the specified context property for the current logger. The logger will append it for all log events. + + With property, all properties can be enumerated (or updated). + + + It is highly recommended to ONLY use for modifying context properties. + This method will affect all locations/contexts that makes use of the same named logger object. And can cause + unexpected surprises at multiple locations and other thread contexts. + + Property Name + Property Value + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided property + + Name of property + Value of property + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Updates the with provided properties + + Properties being added to the scope dictionary + A disposable object that removes the properties from logical context scope on dispose. + property-dictionary-keys are case-insensitive + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Pushes new state on the logical context scope stack + + Value to added to the scope stack + A disposable object that pops the nested scope state on dispose. + + + + Writes the specified diagnostic message. + + Log event. + + + + Writes the specified diagnostic message. + + Type of custom Logger wrapper. + Log event. + + + + Writes the diagnostic message at the specified level using the specified format provider and format parameters. + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + Type of the value. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + The value to be written. + + + + Writes the diagnostic message at the specified level. + + The log level. + A function returning message to be written. Function is not evaluated if logging is not enabled. + + + + Writes the diagnostic message at the specified level using the specified parameters and formatting them with the supplied format provider. + + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message at the specified level. + + The log level. + Log message. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The log level. + A containing format items. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + A to be written. + Arguments to format. + + + + Writes the diagnostic message and exception at the specified level. + + The log level. + An exception to be logged. + An IFormatProvider that supplies culture-specific formatting information. + A to be written. + Arguments to format. + + + + Writes the diagnostic message at the specified level using the specified parameter and formatting it with the supplied format provider. + + The type of the argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameter. + + The type of the argument. + The log level. + A containing one format item. + The argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + + + + Writes the diagnostic message at the specified level using the specified arguments formatting it with the supplied format provider. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + An IFormatProvider that supplies culture-specific formatting information. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Writes the diagnostic message at the specified level using the specified parameters. + + The type of the first argument. + The type of the second argument. + The type of the third argument. + The log level. + A containing one format item. + The first argument to format. + The second argument to format. + The third argument to format. + + + + Runs the provided action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Action to execute. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Function to run. + Result returned by the provided function or the default value of type in case of exception. + + + + Runs the provided function and returns its result. If an exception is thrown, it is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Function to run. + Fallback value to return in case of exception. + Result returned by the provided function or fallback value in case of exception. + + + + Logs an exception is logged at Error level if the provided task does not run to completion. + + The task for which to log an error if it does not run to completion. + This method is useful in fire-and-forget situations, where application logic does not depend on completion of task. This method is avoids C# warning CS4014 in such situations. + + + + Returns a task that completes when a specified task to completes. If the task does not run to completion, an exception is logged at Error level. The returned task always runs to completion. + + The task for which to log an error if it does not run to completion. + A task that completes in the state when completes. + + + + Runs async action. If the action throws, the exception is logged at Error level. The exception is not propagated outside of this method. + + Async action to execute. + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a default value is returned instead. + + Return type of the provided function. + Async function to run. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the default value of type . + + + + Runs the provided async function and returns its result. If the task does not run to completion, an exception is logged at Error level. + The exception is not propagated outside of this method; a fallback value is returned instead. + + Return type of the provided function. + Async function to run. + Fallback value to return if the task does not end in the state. + A task that represents the completion of the supplied task. If the supplied task ends in the state, the result of the new task will be the result of the supplied task; otherwise, the result of the new task will be the fallback value. + + + + Raises the event when the logger is reconfigured. + + Event arguments + + + + Implementation of logging engine. + + + + + Gets the filter result. + + The filter chain. + The log event. + default result if there are no filters, or none of the filters decides. + The result of the filter. + + + + Defines available log levels. + + + Log levels ordered by severity:
+ - (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
+ - (Ordinal = 1) : Debugging the application behavior from internal events of interest.
+ - (Ordinal = 2) : Information that highlights progress or application lifetime events.
+ - (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
+ - (Ordinal = 4) : Errors where functionality has failed or have been caught.
+ - (Ordinal = 5) : Most critical level. Application is about to abort.
+
+
+ + + Trace log level (Ordinal = 0) + + + Most verbose level. Used for development and seldom enabled in production. + + + + + Debug log level (Ordinal = 1) + + + Debugging the application behavior from internal events of interest. + + + + + Info log level (Ordinal = 2) + + + Information that highlights progress or application lifetime events. + + + + + Warn log level (Ordinal = 3) + + + Warnings about validation issues or temporary failures that can be recovered. + + + + + Error log level (Ordinal = 4) + + + Errors where functionality has failed or have been caught. + + + + + Fatal log level (Ordinal = 5) + + + Most critical level. Application is about to abort. + + + + + Off log level (Ordinal = 6) + + + + + Gets all the available log levels (Trace, Debug, Info, Warn, Error, Fatal, Off). + + + + + Gets all the log levels that can be used to log events (Trace, Debug, Info, Warn, Error, Fatal) + i.e LogLevel.Off is excluded. + + + + + Initializes a new instance of . + + The log level name. + The log level ordinal number. + + + + Gets the name of the log level. + + + + + Gets the ordinal of the log level. + + + + + Compares two objects + and returns a value indicating whether + the first one is equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal == level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is not equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal != level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than the second one. + + The first level. + The second level. + The value of level1.Ordinal > level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is greater than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal >= level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than the second one. + + The first level. + The second level. + The value of level1.Ordinal < level2.Ordinal. + + + + Compares two objects + and returns a value indicating whether + the first one is less than or equal to the second one. + + The first level. + The second level. + The value of level1.Ordinal <= level2.Ordinal. + + + + Gets the that corresponds to the specified ordinal. + + The ordinal. + The instance. For 0 it returns , 1 gives and so on. + + + + Returns the that corresponds to the supplied . + + The textual representation of the log level. + The enumeration value. + + + + Returns a string representation of the log level. + + Log level name. + + + + + + + + + + Determines whether the specified instance is equal to this instance. + + The to compare with this instance. + Value of true if the specified is equal to + this instance; otherwise, false. + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Compares the level to the other object. + + The other object. + + A value less than zero when this logger's is + less than the other logger's ordinal, 0 when they are equal and + greater than zero when this ordinal is greater than the + other ordinal. + + + + + Creates and manages instances of objects. + + + LogManager wraps a singleton instance of . + + + + + Internal for unit tests + + + + + Gets the instance used in the . + + Could be used to pass the to other methods + + + + Occurs when logging changes. + + + + + Occurs when logging gets reloaded. + + + + + Gets or sets a value indicating whether NLog should throw exceptions. + By default exceptions are not thrown under any circumstances. + + + + + Gets or sets a value indicating whether should be thrown. + + A value of true if exception should be thrown; otherwise, false. + + This option is for backwards-compatibility. + By default exceptions are not thrown under any circumstances. + + + + + + Gets or sets a value indicating whether Variables should be kept on configuration reload. + + + + + Gets or sets a value indicating whether to automatically call + on AppDomain.Unload or AppDomain.ProcessExit + + + + + Gets or sets the current logging configuration. + + + Setter will re-configure all -objects, so no need to also call + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Begins configuration of the LogFactory options using fluent interface + + + + + Loads logging configuration from file (Currently only XML configuration files supported) + + Configuration file to be read + LogFactory instance for fluent interface + + + + Gets or sets the global log threshold. Log events below this threshold are not logged. + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + The logger. + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Adds the given assembly which will be skipped + when NLog is trying to find the calling method on stack trace. + + The assembly to skip. + + + + Gets a custom logger with the full name of the current class, so namespace and class name. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + The logger class. This class must inherit from . + The logger of type . + This is a slow-running method. + Make sure you're not doing this in a loop. + + + + Creates a logger that discards all log messages. + + Null logger which discards all log messages. + + + + Gets the specified named logger. + + Name of the logger. + The logger reference. Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + + + + Gets the specified named custom logger. + Use to create instance of a custom . + If you haven't defined your own class, then use the overload without the loggerType. + + Name of the logger. + The logger class. This class must inherit from . + The logger of type . Multiple calls to GetLogger with the same argument aren't guaranteed to return the same logger reference. + The generic way for this method is + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + + + + Loops through all loggers previously returned by GetLogger. + and recalculates their target and filter list. Useful after modifying the configuration programmatically + to ensure that all loggers have been properly configured. + + Purge garbage collected logger-items from the cache + + + + Flush any pending log messages (in case of asynchronous targets) with the default timeout of 15 seconds. + + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + Maximum time to allow for the flush. Any messages after that time will be discarded. + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Suspends the logging, and returns object for using-scope so scope-exit calls + + + Logging is suspended when the number of calls are greater + than the number of calls. + + An object that implements IDisposable whose Dispose() method re-enables logging. + To be used with C# using () statement. + + + + Resumes logging if having called . + + + Logging is suspended when the number of calls are greater + than the number of calls. + + + + + Returns if logging is currently enabled. + + + Logging is suspended when the number of calls are greater + than the number of calls. + + A value of if logging is currently enabled, + otherwise. + + + + Dispose all targets, and shutdown logging. + + + + + Generates a formatted message from the log event + + Log event. + Formatted message + + + + Returns a log message. Used to defer calculation of + the log message until it's actually needed. + + Log message. + + + + The type of the captured hole + + + + + Not decided + + + + + normal {x} + + + + + Serialize operator {@x} (aka destructure) + + + + + stringification operator {$x} + + + + + A hole that will be replaced with a value + + + + + Constructor + + + + Parameter name sent to structured loggers. + This is everything between "{" and the first of ",:}". + Including surrounding spaces and names that are numbers. + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + Type + + + + When the template is positional, this is the parsed name of this parameter. + For named templates, the value of Index is undefined. + + + Alignment to render the parameter, by default 0. + This is the parsed value between "," and the first of ":}" + + + + A fixed value + + + + Number of characters from the original template to copy at the current position. + This can be 0 when the template starts with a hole or when there are multiple consecutive holes. + + + Number of characters to skip in the original template at the current position. + 0 is a special value that mean: 1 escaped char, no hole. It can also happen last when the template ends with a literal. + + + + Combines Literal and Hole + + + + Literal + + + Hole + Uninitialized when = 0. + + + + Description of a single parameter extracted from a MessageTemplate + + + + + Parameter Name extracted from + This is everything between "{" and the first of ",:}". + + + + + Parameter Value extracted from the -array + + + + + Format to render the parameter. + This is everything between ":" and the first unescaped "}" + + + + + Parameter method that should be used to render the parameter + See also + + + + + Returns index for , when + + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + + + + Constructs a single message template parameter + + Parameter Name + Parameter Value + Parameter Format + Parameter CaptureType + + + + Parameters extracted from parsing as MessageTemplate + + + + + + + + + + + Gets the parameters at the given index + + + + + Number of parameters + + + + Indicates whether the template should be interpreted as positional + (all holes are numbers) or named. + + + + Indicates whether the template was parsed successful, and there are no unmatched parameters + + + + + Constructor for parsing the message template with parameters + + including any parameter placeholders + All + + + + Constructor for named parameters that already has been parsed + + + + + Create MessageTemplateParameter from + + + + + Parse templates. + + + + + Parse a template. + + Template to be parsed. + When is null. + Template, never null + + + + Gets the current literal/hole in the template + + + + + Clears the enumerator + + + + + Restarts the enumerator of the template + + + + + Moves to the next literal/hole in the template + + Found new element [true/false] + + + + Parse format after hole name/index. Handle the escaped { and } in the format. Don't read the last } + + + + + + Error when parsing a template. + + + + + Current index when the error occurred. + + + + + The template we were parsing + + + + + New exception + + The message to be shown. + Current index when the error occurred. + + + + + Convert, Render or serialize a value, with optionally backwards-compatible with + + + + + Serialization of an object, e.g. JSON and append to + + The object to serialize to string. + Parameter Format + Parameter CaptureType + An object that supplies culture-specific formatting information. + Output destination. + Serialize succeeded (true/false) + + + + Format an object to a readable string, or if it's an object, serialize + + The value to convert + + + + + + + + Try serializing a scalar (string, int, NULL) or simple type (IFormattable) + + + + + Serialize Dictionary as JSON like structure, without { and } + + + "FirstOrder"=true, "Previous login"=20-12-2017 14:55:32, "number of tries"=1 + + + format string of an item + + + + + + + + + Convert a value to a string with format and append to . + + The value to convert. + Format sting for the value. + Format provider for the value. + Append to this + + + + Exception thrown during NLog configuration. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The inner exception. + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + Exception thrown during log event processing. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + Parameters for the message + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Initializes a new instance of the class. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + The parameter is null. + + + The class name is null or is zero (0). + + + + + TraceListener which routes all messages through NLog. + + + + + Initializes a new instance of the class. + + + + + Gets or sets the log factory to use when outputting messages (null - use LogManager). + + + + + Gets or sets the default log level. + + + + + Gets or sets the log which should be always used regardless of source level. + + + + + Gets or sets a value indicating whether flush calls from trace sources should be ignored. + + + + + Gets a value indicating whether the trace listener is thread safe. + + + true if the trace listener is thread safe; otherwise, false. The default is false. + + + + Gets or sets a value indicating whether to use auto logger name detected from the stack trace. + + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + A message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + When overridden in a derived class, closes the output stream so it no longer receives tracing or debugging output. + + + + + Emits an error message. + + A message to emit. + + + + Emits an error message and a detailed error message. + + A message to emit. + A detailed message to emit. + + + + Flushes the output (if is not true) buffer with the default timeout of 15 seconds. + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + Writes trace information, a message, a related activity identity and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + A numeric identifier for the event. + A message to write. + A object identifying a related activity. + + + + Gets the custom attributes supported by the trace listener. + + + A string array naming the custom attributes supported by the trace listener, or null if there are no custom attributes. + + + + + Translates the event type to level from . + + Type of the event. + Translated log level. + + + + Process the log event + The log level. + The name of the logger. + The log message. + The log parameters. + The event id. + The event type. + The related activity id. + + + + + It works as a normal but it discards all messages which an application requests + to be logged. + + It effectively implements the "Null Object" pattern for objects. + + + + + Initializes a new instance of . + + The factory class to be used for the creation of this logger. + + + + Extension methods to setup LogFactory options + + + + + Gets the logger with the full name of the current class, so namespace and class name. + + + + + Gets the specified named logger. + + + + + Configures general options for NLog LogFactory before loading NLog config + + + + + Configures loading of NLog extensions for Targets and LayoutRenderers + + + + + Configures the output of NLog for diagnostics / troubleshooting + + + + + Configures serialization and transformation of LogEvents + + + + + Loads NLog config created by the method + + + + + Loads NLog config provided in + + + + + Loads NLog config from filename if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Explicit configuration file to be read (Default NLog.config from candidates paths) + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from file-paths if provided, else fallback to scanning for NLog.config + + Fluent interface parameter. + Candidates file paths (including filename) where to scan for NLog config files + Whether to allow application to run when NLog config is not available + + + + Loads NLog config from XML in + + + + + Loads NLog config located in embedded resource from main application assembly. + + Fluent interface parameter. + Assembly for the main Application project with embedded resource + Name of the manifest resource for NLog config XML + + + + Reloads the current logging configuration and activates it + + Logevents produced during the configuration-reload can become lost, as targets are unavailable while closing and initializing. + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Enable/disables autoloading of NLog extensions by scanning and loading available assemblies + + + Disabled by default as it can give a huge performance hit during startup. Recommended to keep it disabled especially when running in the cloud. + + + + + Registers NLog extensions from the assembly. + + + + + Registers NLog extensions from the assembly type name + + + + + Register a custom NLog Target. + + Type of the Target. + Fluent interface parameter. + The target type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Target. + + Fluent interface parameter. + Type name of the Target + The target type-alias for use in NLog configuration + + + + Register a custom NLog Layout. + + Type of the layout renderer. + Fluent interface parameter. + The layout type-alias for use in NLog configuration. Will extract from class-attribute when unassigned. + + + + Register a custom NLog Layout. + + Fluent interface parameter. + Type of the layout. + The layout type-alias for use in NLog configuration + + + + Register a custom NLog LayoutRenderer. + + Type of the layout renderer. + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }'. Will extract from class-attribute when unassigned. + + + + Register a custom NLog LayoutRenderer. + + Fluent interface parameter. + Type of the layout renderer. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom NLog LayoutRenderer with a callback function . The callback receives the logEvent and the current configuration. + + Fluent interface parameter. + The layout-renderer type-alias for use in NLog configuration - without '${ }' + Callback that returns the value for the layout renderer. + Options of the layout renderer. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + MethodInfo extracted by reflection - typeof(MyClass).GetMethod("MyFunc", BindingFlags.Static). + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register a custom condition method, that can use in condition filters + + Fluent interface parameter. + Name of the condition filter method + Lambda method. + + + + Register (or replaces) singleton-object for the specified service-type + + Service interface type + Fluent interface parameter. + Implementation of interface. + + + + Register (or replaces) singleton-object for the specified service-type + + Fluent interface parameter. + Service interface type. + Implementation of interface. + + + + Register (or replaces) external service-repository for resolving dependency injection + + Fluent interface parameter. + External dependency injection repository + + + + Extension methods to setup NLog options + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configures + + + + + Configure the InternalLogger properties from Environment-variables and App.config using + + + Recognizes the following environment-variables: + + - NLOG_INTERNAL_LOG_LEVEL + - NLOG_INTERNAL_LOG_FILE + - NLOG_INTERNAL_LOG_TO_CONSOLE + - NLOG_INTERNAL_LOG_TO_CONSOLE_ERROR + - NLOG_INTERNAL_LOG_TO_TRACE + - NLOG_INTERNAL_INCLUDE_TIMESTAMP + + Legacy .NetFramework platform will also recognizes the following app.config settings: + + - nlog.internalLogLevel + - nlog.internalLogFile + - nlog.internalLogToConsole + - nlog.internalLogToConsoleError + - nlog.internalLogToTrace + - nlog.internalLogIncludeTimestamp + + + + + Extension methods to setup NLog + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Logger name pattern to check which names matches this rule + Rule identifier to allow rule lookup + + + + Defines for redirecting output from matching to wanted targets. + + Fluent interface parameter. + Override the name for the target created + + + + Apply fast filtering based on . Include LogEvents with same or worse severity as . + + Fluent interface parameter. + Minimum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with same or less severity as . + + Fluent interface parameter. + Maximum level that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity that equals . + + Fluent interface parameter. + Single loglevel that this rule matches + + + + Apply fast filtering based on . Include LogEvents with severity between and . + + Fluent interface parameter. + Minimum level that this rule matches + Maximum level that this rule matches + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Filter for controlling whether to write + Default action if none of the filters match + + + + Apply dynamic filtering logic for advanced control of when to redirect output to target. + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + Default action if none of the filters match + + + + Dynamic filtering of LogEvent, where it will be ignored when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will on match also be ignored by following logging-rules + + + + Dynamic filtering of LogEvent, where it will be logged when matching filter-method-delegate + + + Slower than using Logger-name or LogLevel-severity, because of allocation. + + Fluent interface parameter. + Delegate for controlling whether to write + LogEvent will not be evaluated by following logging-rules + + + + Move the to the top, to match before any of the existing + + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Redirect output from matching to the provided + + Fluent interface parameter. + Target-collection that should be written to. + Fluent interface for configuring targets for the new LoggingRule. + + + + Discard output from matching , so it will not reach any following . + + Fluent interface parameter. + Only discard output from matching Logger when below minimum LogLevel + + + + Returns first target registered + + + + + Returns first target registered with the specified type + + Type of target + + + + Write to + + Fluent interface parameter. + Method to call on logevent + Layouts to render object[]-args before calling + + + + Write to + + Fluent interface parameter. + Override the default Layout for output + Override the default Encoding for output (Ex. UTF8) + Write to stderr instead of standard output (stdout) + Skip overhead from writing to console, when not available (Ex. running as Windows Service) + Enable batch writing of logevents, instead of Console.WriteLine for each logevent (Requires ) + + + + Write to + + + Override the default Layout for output + Force use independent of + + + + Write to + + + Override the default Layout for output + + + + Write to (when DEBUG-build) + + + Override the default Layout for output + + + + Write to + + Fluent interface parameter. + + Override the default Layout for output + Override the default Encoding for output (Default = UTF8) + Override the default line ending characters (Ex. without CR) + Keep log file open instead of opening and closing it on each logging event + Activate multi-process synchronization using global mutex on the operating system + Size in bytes where log files will be automatically archived. + Maximum number of archive files that should be kept. + Maximum days of archive files that should be kept. + + + + Applies target wrapper for existing + + Fluent interface parameter. + Factory method for creating target-wrapper + + + + Applies for existing for asynchronous background writing + + Fluent interface parameter. + Action to take when queue overflows + Queue size limit for pending logevents + Batch size when writing on the background thread + + + + Applies for existing for throttled writing + + Fluent interface parameter. + Buffer size limit for pending logevents + Timeout for when the buffer will flush automatically using background thread + Restart timeout when logevent is written + Action to take when buffer overflows + + + + Applies for existing for flushing after conditional event + + Fluent interface parameter. + Method delegate that controls whether logevent should force flush. + Only flush when triggers (Ignore config-reload and config-shutdown) + + + + Applies for existing for retrying after failure + + Fluent interface parameter. + Number of retries that should be attempted on the wrapped target in case of a failure. + Time to wait between retries + + + + Applies for existing to fallback on failure. + + Fluent interface parameter. + Target to use for fallback + Whether to return to the first target after any successful write + + + + Extension methods to setup general option before loading NLog LoggingConfiguration + + + + + Configures the global time-source used for all logevents + + + Available by default: , , , + + + + + Configures the global time-source used for all logevents to use + + + + + Configures the global time-source used for all logevents to use + + + + + Updates the dictionary ${gdc:item=} with the name-value-pair + + + + + Sets whether to automatically call on AppDomain.Unload or AppDomain.ProcessExit + + + + + Sets the default culture info to use as . + + + + + Sets the global log level threshold. Log events below this threshold are not logged. + + + + + Gets or sets a value indicating whether should be thrown on configuration errors + + + + + Mark Assembly as hidden, so Assembly methods are excluded when resolving ${callsite} from StackTrace + + + + + Extension methods to setup NLog extensions, so they are known when loading NLog LoggingConfiguration + + + + + Overrides the active with a new custom implementation + + + + + Overrides the active with a new custom implementation + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Registers object Type transformation from dangerous (massive) object to safe (reduced) object + + + + + Specifies the way archive numbering is performed. + + + + + Sequence style numbering. The most recent archive has the highest number. + + + + + Rolling style numbering (the most recent is always #0 then #1, ..., #N. + + + + + Date style numbering. Archives will be stamped with the prior period + (Year, Month, Day, Hour, Minute) datetime. + + + + + Date and sequence style numbering. + Archives will be stamped with the prior period (Year, Month, Day) datetime. + The most recent archive has the highest number (in combination with the date). + + + + + Abstract Target with async Task support + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : AsyncTaskTarget + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private async Task SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + How many milliseconds to delay the actual write operation to optimize for batching + + + + + + How many seconds a Task is allowed to run before it is cancelled. + + + + + + How many attempts to retry the same Task, before it is aborted + + + + + + How many milliseconds to wait before next retry (will double with each retry) + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Task Scheduler used for processing async Tasks + + + + + Constructor + + + + + + + + Override this to provide async task for writing a single logevent. + + Example of how to override this method, and call custom async method + + protected override Task WriteAsyncTask(LogEventInfo logEvent, CancellationToken token) + { + return CustomWriteAsync(logEvent, token); + } + + private async Task CustomWriteAsync(LogEventInfo logEvent, CancellationToken token) + { + await MyLogMethodAsync(logEvent, token).ConfigureAwait(false); + } + + + The log event. + The cancellation token + + + + + Override this to provide async task for writing a batch of logevents. + + A batch of logevents. + The cancellation token + + + + + Handle cleanup after failed write operation + + Exception from previous failed Task + The cancellation token + Number of retries remaining + Time to sleep before retrying + Should attempt retry + + + + Block for override. Instead override + + + + + Block for override. Instead override + + + + + + + + Write to queue without locking + + + + + + Block for override. Instead override + + + + + LogEvent is written to target, but target failed to successfully initialize + + Enqueue logevent for later processing when target failed to initialize because of unresolved service dependency. + + + + + Schedules notification of when all messages has been written + + + + + + Closes Target by updating CancellationToken + + + + + Releases any managed resources + + + + + + Checks the internal queue for the next to create a new task for + + Used for race-condition validation between task-completion and timeout + Signals whether previousTask completed an almost full BatchSize + + + + Generates recursive task-chain to perform retry of writing logevents with increasing retry-delay + + + + + Creates new task to handle the writing of the input + + LogEvents to write + New Task created [true / false] + + + + Handles that scheduled task has completed (successfully or failed), and starts the next pending task + + Task just completed + AsyncContinuation to notify of success or failure + + + + Timer method, that is fired when pending task fails to complete within timeout + + + + + + Sends log messages to the remote instance of Chainsaw application from log4j. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a name. + + Name of the target. + + + + Color formatting for using ANSI Color Codes + + + + + Not using bold to get light colors, as it has to be cleared + + + + + Not using bold to get light colors, as it has to be cleared (And because it only works for text, and not background) + + + + + Resets both foreground and background color. + + + + + ANSI have 8 color-codes (30-37) by default. The "bright" (or "intense") color-codes (90-97) are extended values not supported by all terminals + + + + + Color formatting for using + and + + + + + Writes log messages to the console with customizable coloring. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether the error stream (stderr) should be used instead of the output stream (stdout). + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to use default row highlighting rules. + + + The default rules are: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConditionForeground ColorBackground Color
level == LogLevel.FatalRedNoChange
level == LogLevel.ErrorYellowNoChange
level == LogLevel.WarnMagentaNoChange
level == LogLevel.InfoWhiteNoChange
level == LogLevel.DebugGrayNoChange
level == LogLevel.TraceDarkGrayNoChange
+
+ +
+ + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available. + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-check if the console has been redirected to file + - Disables coloring logic when System.Console.IsOutputRedirected = true + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Enables output using ANSI Color Codes + + + + + + Gets the row highlighting rules. + + + + + + Gets the word highlighting rules. + + + + + + + + + + + + + + + + + + Colored console output color. + + + Note that this enumeration is defined to be binary compatible with + .NET 2.0 System.ConsoleColor + some additions + + + + + Black Color (#000000). + + + + + Dark blue Color (#000080). + + + + + Dark green Color (#008000). + + + + + Dark Cyan Color (#008080). + + + + + Dark Red Color (#800000). + + + + + Dark Magenta Color (#800080). + + + + + Dark Yellow Color (#808000). + + + + + Gray Color (#C0C0C0). + + + + + Dark Gray Color (#808080). + + + + + Blue Color (#0000FF). + + + + + Green Color (#00FF00). + + + + + Cyan Color (#00FFFF). + + + + + Red Color (#FF0000). + + + + + Magenta Color (#FF00FF). + + + + + Yellow Color (#FFFF00). + + + + + White Color (#FFFFFF). + + + + + Don't change the color. + + + + + The row-highlighting condition. + + + + + Initializes static members of the ConsoleRowHighlightingRule class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The condition. + Color of the foreground. + Color of the background. + + + + Gets the default highlighting rule. Doesn't change the color. + + + + + Gets or sets the condition that must be met in order to set the specified foreground and background color. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Checks whether the specified log event matches the condition (if any). + + + Log event. + + + A value of if the condition is not defined or + if it matches, otherwise. + + + + + Writes log messages to the console. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Should logging being paused/stopped because of the race condition bug in Console.Writeline? + + + Console.Out.Writeline / Console.Error.Writeline could throw 'IndexOutOfRangeException', which is a bug. + See https://stackoverflow.com/questions/33915790/console-out-and-console-error-race-condition-error-in-a-windows-service-written + and https://connect.microsoft.com/VisualStudio/feedback/details/2057284/console-out-probable-i-o-race-condition-issue-in-multi-threaded-windows-service + + Full error: + Error during session close: System.IndexOutOfRangeException: Probable I/ O race condition detected while copying memory. + The I/ O package is not thread safe by default. In multi-threaded applications, + a stream must be accessed in a thread-safe way, such as a thread - safe wrapper returned by TextReader's or + TextWriter's Synchronized methods.This also applies to classes like StreamWriter and StreamReader. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + Gets or sets a value indicating whether to send the log messages to the standard error instead of the standard output. + + + + + + The encoding for writing messages to the . + + Has side effect + + + + + Gets or sets a value indicating whether to auto-check if the console is available + - Disables console writing if Environment.UserInteractive = False (Windows Service) + - Disables console writing if Console Standard Input is not available (Non-Console-App) + + + + + + Gets or sets a value indicating whether to auto-flush after + + + Normally not required as standard Console.Out will have = true, but not when pipe to file + + + + + + Gets or sets whether to activate internal buffering to allow batch writing, instead of using + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + + + + + + + Highlighting rule for Win32 colorful console. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The text to be matched.. + Color of the foreground. + Color of the background. + + + + Gets or sets the regular expression to be matched. You must specify either text or regex. + + + + + + Gets or sets the condition that must be met before scanning the row for highlight of words + + + + + + Compile the ? This can improve the performance, but at the costs of more memory usage. If false, the Regex Cache is used. + + + + + + Gets or sets the text to be matched. You must specify either text or regex. + + + + + + Gets or sets a value indicating whether to match whole words only. + + + + + + Gets or sets a value indicating whether to ignore case when comparing texts. + + + + + + Gets or sets the foreground color. + + + + + + Gets or sets the background color. + + + + + + Gets the compiled regular expression that matches either Text or Regex property. Only used when is true. + + + + + A descriptor for an archive created with the DateAndSequence numbering mode. + + + + + The full name of the archive file. + + + + + The parsed date contained in the file name. + + + + + The parsed sequence number contained in the file name. + + + + + Determines whether produces the same string as the current instance's date once formatted with the current instance's date format. + + The date to compare the current object's date to. + True if the formatted dates are equal, otherwise False. + + + + Initializes a new instance of the class. + + + + + Writes log messages to the attached managed debugger. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + + + + Outputs log messages through + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Outputs the rendered logging event through + + The logging event. + + + + Mock target - useful for testing. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the number of times this target has been called. + + + + + + Gets the last message rendered by this target. + + + + + + + + + Default class for serialization of values to JSON format. + + + + + Singleton instance of the serializer. + + + + + Private. Use + + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + Serialized value. + + + + Returns a serialization of an object into JSON format. + + The object to serialize to JSON. + serialization options + Serialized value. + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + Object serialized successfully (true/false). + + + + Serialization of the object in JSON format to the destination StringBuilder + + The object to serialize to JSON. + Write the resulting JSON to this destination. + serialization options + The objects in path (Avoid cyclic reference loop). + The current depth (level) of recursion. + Object serialized successfully (true/false). + + + + No quotes needed for this type? + + + + + Checks the object if it is numeric + + TypeCode for the object + Accept fractional types as numeric type. + + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + all options + JSON escaped string + + + + Checks input string if it needs JSON escaping, and makes necessary conversion + + Destination Builder + Input string + Should non-ASCII characters be encoded + + JSON escaped string + + + + Check if cleanup should be performed on initialize new file + + Skip cleanup when initializing new file, just after having performed archive operation + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Characters determining the start of the . + + + + + Characters determining the end of the . + + + + + File name which is used as template for matching and replacements. + It is expected to contain a pattern to match. + + + + + The beginning position of the + within the . -1 is returned + when no pattern can be found. + + + + + The ending position of the + within the . -1 is returned + when no pattern can be found. + + + + + Replace the pattern with the specified String. + + + + + + + Archives the log-files using a date style numbering. Archives will be stamped with the + prior period (Year, Month, Day, Hour, Minute) datetime. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Archives the log-files using a date and sequence style numbering. Archives will be stamped + with the prior period (Year, Month, Day) datetime. The most recent archive has the highest number (in + combination with the date). + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Parse filename with date and sequence pattern + + + dateformat for archive + + the found pattern. When failed, then default + the found pattern. When failed, then default + + + + + Archives the log-files using the provided base-archive-filename. If the base-archive-filename causes + duplicate archive filenames, then sequence-style is automatically enforced. + + Example: + Base Filename trace.log + Next Filename trace.0.log + + The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Dynamically converts a non-template archiveFilePath into a correct archiveFilePattern. + Before called the original IFileArchiveMode, that has been wrapped by this + + + + + Determines if the file name as contains a numeric pattern i.e. {#} in it. + + Example: + trace{#}.log Contains the numeric pattern. + trace{###}.log Contains the numeric pattern. + trace{#X#}.log Contains the numeric pattern (See remarks). + trace.log Does not contain the pattern. + + Occasionally, this method can identify the existence of the {#} pattern incorrectly. + File name to be checked. + when the pattern is found; otherwise. + + + + Archives the log-files using a rolling style numbering (the most recent is always #0 then + #1, ..., #N. + + When the number of archive files exceed the obsolete archives + are deleted. + + + + + Replaces the numeric pattern i.e. {#} in a file name with the parameter value. + + File name which contains the numeric pattern. + Value which will replace the numeric pattern. + File name with the value of in the position of the numeric pattern. + + + + Archives the log-files using a sequence style numbering. The most recent archive has the highest number. + + When the number of archive files exceed the obsolete archives are deleted. + When the age of archive files exceed the obsolete archives are deleted. + + + + + Modes of archiving files based on time. + + + + + Don't archive based on time. + + + + + AddToArchive every year. + + + + + AddToArchive every month. + + + + + AddToArchive daily. + + + + + AddToArchive every hour. + + + + + AddToArchive every minute. + + + + + AddToArchive every Sunday. + + + + + AddToArchive every Monday. + + + + + AddToArchive every Tuesday. + + + + + AddToArchive every Wednesday. + + + + + AddToArchive every Thursday. + + + + + AddToArchive every Friday. + + + + + AddToArchive every Saturday. + + + + + Type of filepath + + + + + Detect of relative or absolute + + + + + Relative path + + + + + Absolute path + + Best for performance + + + + Writes log messages to one or more files. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Default clean up period of the initialized files. When a file exceeds the clean up period is removed from the list. + + Clean up period is defined in days. + + + + This value disables file archiving based on the size. + + + + + Holds the initialized files each given time by the instance. Against each file, the last write time is stored. + + Last write time is store in local time (no UTC). + + + + List of the associated file appenders with the instance. + + + + + The number of initialized files at any one time. + + + + + The maximum number of archive files that should be kept. + + + + + The maximum days of archive files that should be kept. + + + + + The filename as target + + + + + The archive file name as target + + + + + The date of the previous log event. + + + + + The file name of the previous log event. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the name of the file to write to. + + + This FileName string is a layout which may include instances of layout renderers. + This lets you use a single target to write to multiple files. + + + The following value makes NLog write logging events to files based on the log level in the directory where + the application runs. + ${basedir}/${level}.log + All Debug messages will go to Debug.log, all Info messages will go to Info.log and so on. + You can combine as many of the layout renderers as you want to produce an arbitrary log file name. + + + + + + Cleanup invalid values in a filename, e.g. slashes in a filename. If set to true, this can impact the performance of massive writes. + If set to false, nothing gets written when the filename is wrong. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets a value indicating whether to create directories if they do not exist. + + + Setting this to false may improve performance a bit, but you'll receive an error + when attempting to write to a directory that's not present. + + + + + + Gets or sets a value indicating whether to delete old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + + + + + + Gets or sets a value indicating whether to replace file contents on each write instead of appending log message at the end. + + + + + + Gets or sets a value indicating whether to keep log file open instead of opening and closing it on each logging event. + + + KeepFileOpen = true gives the best performance, and ensure the file-lock is not lost to other applications.
+ KeepFileOpen = false gives the best compability, but slow performance and lead to file-locking issues with other applications. +
+ +
+ + + Gets or sets a value indicating whether to enable log file(s) to be deleted. + + + + + + Gets or sets the file attributes (Windows only). + + + + + + Gets or sets the line ending mode. + + + + + + Gets or sets a value indicating whether to automatically flush the file buffers after each log message. + + + + + + Gets or sets the number of files to be kept open. Setting this to a higher value may improve performance + in a situation where a single File target is writing to many files + (such as splitting by level or by logger). + + + The files are managed on a LRU (least recently used) basis, which flushes + the files that have not been used for the longest period of time should the + cache become full. As a rule of thumb, you shouldn't set this parameter to + a very high value. A number like 10-15 shouldn't be exceeded, because you'd + be keeping a large number of files open which consumes system resources. + + + + + + Gets or sets the maximum number of seconds that files are kept open. Zero or negative means disabled. + + + + + + Gets or sets the maximum number of seconds before open files are flushed. Zero or negative means disabled. + + + + + + Gets or sets the log file buffer size in bytes. + + + + + + Gets or sets the file encoding. + + + + + + Gets or sets whether or not this target should just discard all data that its asked to write. + Mostly used for when testing NLog Stack except final write + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on the same host. + + + This makes multi-process logging possible. NLog uses a special technique + that lets it keep the files open for writing. + + + + + + Gets or sets a value indicating whether concurrent writes to the log file by multiple processes on different network hosts. + + + This effectively prevents files from being kept open. + + + + + + Gets or sets a value indicating whether to write BOM (byte order mark) in created files. + + Defaults to true for UTF-16 and UTF-32 + + + + + + Gets or sets the number of times the write is appended on the file before NLog + discards the log message. + + + + + + Gets or sets the delay in milliseconds to wait before attempting to write to the file again. + + + The actual delay is a random value between 0 and the value specified + in this parameter. On each failed attempt the delay base is doubled + up to times. + + + Assuming that ConcurrentWriteAttemptDelay is 10 the time to wait will be:

+ a random value between 0 and 10 milliseconds - 1st attempt
+ a random value between 0 and 20 milliseconds - 2nd attempt
+ a random value between 0 and 40 milliseconds - 3rd attempt
+ a random value between 0 and 80 milliseconds - 4th attempt
+ ...

+ and so on. + + + + +

+ Gets or sets a value indicating whether to archive old log file on startup. + + + This option works only when the "FileName" parameter denotes a single file. + After archiving the old file, the current log file will be empty. + + +
+ + + Gets or sets a value of the file size threshold to archive old log file on startup. + + + This option won't work if is set to false + Default value is 0 which means that the file is archived as soon as archival on + startup is enabled. + + + + + + Gets or sets a value specifying the date format to use when archiving files. + + + This option works only when the "ArchiveNumbering" parameter is set either to Date or DateAndSequence. + + + + + + Gets or sets the size in bytes above which log files will be automatically archived. + + + Notice when combined with then it will attempt to append to any existing + archive file if grown above size multiple times. New archive file will be created when using + + + + + + Gets or sets a value indicating whether to automatically archive log files every time the specified time passes. + + + Files are moved to the archive as part of the write operation if the current period of time changes. For example + if the current hour changes from 10 to 11, the first write that will occur + on or after 11:00 will trigger the archiving. + + + + + + Is the an absolute or relative path? + + + + + + Gets or sets the name of the file to be used for an archive. + + + It may contain a special placeholder {#####} + that will be replaced with a sequence of numbers depending on + the archiving strategy. The number of hash characters used determines + the number of numerical digits to be used for numbering files. + + + + + + Gets or sets the maximum number of archive files that should be kept. + + + + + + Gets or sets the maximum days of archive files that should be kept. + + + + + + Gets or sets the way file archives are numbered. + + + + + + Used to compress log files during archiving. + This may be used to provide your own implementation of a zip file compressor, + on platforms other than .Net4.5. + Defaults to ZipArchiveFileCompressor on .Net4.5 and to null otherwise. + + + + + + Gets or sets a value indicating whether to compress archive files into the zip archive format. + + + + + + Gets or set a value indicating whether a managed file stream is forced, instead of using the native implementation. + + + + + + Gets or sets a value indicating whether file creation calls should be synchronized by a system global mutex. + + + + + + Gets or sets a value indicating whether the footer should be written only when the file is archived. + + + + + + Gets the characters that are appended after each line. + + + + + Refresh the ArchiveFilePatternToWatch option of the . + The log file must be watched for archiving when multiple processes are writing to the same + open file. + + + + + Removes records of initialized files that have not been + accessed in the last two days. + + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Removes records of initialized files that have not been + accessed after the specified date. + + The cleanup threshold. + + Files are marked 'initialized' for the purpose of writing footers when the logging finishes. + + + + + Flushes all pending file operations. + + The asynchronous continuation. + + The timeout parameter is ignored, because file APIs don't provide + the needed functionality. + + + + + Returns the suitable appender factory ( ) to be used to generate the file + appenders associated with the instance. + + The type of the file appender factory returned depends on the values of various properties. + + suitable for this instance. + + + + Initializes file logging by creating data structures that + enable efficient multi-file logging. + + + + + Closes the file(s) opened for writing. + + + + + Writes the specified logging event to a file specified in the FileName + parameter. + + The logging event. + + + + Get full filename (=absolute) and cleaned if needed. + + + + + + + Writes the specified array of logging events to a file specified in the FileName + parameter. + + An array of objects. + + This function makes use of the fact that the events are batched by sorting + the requests by filename. This optimizes the number of open/close calls + and can help improve performance. + + + + + Formats the log event for write. + + The log event to be formatted. + A string representation of the log event. + + + + Gets the bytes to be written to the file. + + Log event. + Array of bytes that are ready to be written. + + + + Modifies the specified byte array before it gets sent to a file. + + The byte array. + The modified byte array. The function can do the modification in-place. + + + + Gets the bytes to be written to the file. + + The log event to be formatted. + to help format log event. + Optional temporary char-array to help format log event. + Destination for the encoded result. + + + + Formats the log event for write. + + The log event to be formatted. + for the result. + + + + Modifies the specified byte array before it gets sent to a file. + + The LogEvent being written + The byte array. + + + + Archives fileName to archiveFileName. + + File name to be archived. + Name of the archive file. + + + + Gets the correct formatting to be used based on the value of for converting values which will be inserting into file + names during archiving. + + This value will be computed only when a empty value or is passed into + + Date format to used irrespectively of value. + Formatting for dates. + + + + Calculate the DateTime of the requested day of the week. + + The DateTime of the previous log event. + The next occurring day of the week to return a DateTime for. + The DateTime of the next occurring dayOfWeek. + For example: if previousLogEventTimestamp is Thursday 2017-03-02 and dayOfWeek is Sunday, this will return + Sunday 2017-03-05. If dayOfWeek is Thursday, this will return *next* Thursday 2017-03-09. + + + + Invokes the archiving process after determining when and which type of archiving is required. + + File name to be checked and archived. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + + + + Gets the pattern that archive files will match + + Filename of the log file + Log event that the instance is currently processing. + A string with a pattern that will match the archive filenames + + + + Archives the file if it should be archived. + + The file name to check for. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + True when archive operation of the file was completed (by this target or a concurrent target) + + + + Closes any active file-appenders that matches the input filenames. + File-appender is requested to invalidate/close its filehandle, but keeping its archive-mutex alive + + + + + Indicates if the automatic archiving process should be executed. + + File name to be written. + Log event that the instance is currently processing. + The size in bytes of the next chunk of data to be written in the file. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Returns the correct filename to archive + + + + + Gets the file name for archiving, or null if archiving should not occur based on file size. + + File name to be written. + The size in bytes of the next chunk of data to be written in the file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Check if archive operation should check previous filename, because FileAppenderCache tells us current filename no longer exists + + + + + Returns the file name for archiving, or null if archiving should not occur based on date/time. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file. + File has just been opened. + Filename to archive. If null, then nothing to archive. + + + + Truncates the input-time, so comparison of low resolution times (like dates) are not affected by ticks + + High resolution Time + Time Resolution Level + Truncated Low Resolution Time + + + + Evaluates which parts of a file should be written (header, content, footer) based on various properties of + instance and writes them. + + File name to be written. + Raw sequence of to be written into the content part of the file. + File has just been opened. + + + + Initialize a file to be used by the instance. Based on the number of initialized + files and the values of various instance properties clean up and/or archiving processes can be invoked. + + File name to be written. + Log event that the instance is currently processing. + The DateTime of the previous log event for this file (DateTime.MinValue if just initialized). + + + + Writes the file footer and finalizes the file in instance internal structures. + + File name to close. + Indicates if the file is being finalized for archiving. + + + + Writes the footer information to a file. + + The file path to write to. + + + + Decision logic whether to archive logfile on startup. + and properties. + + File name to be written. + Decision whether to archive or not. + + + + Invokes the archiving and clean up of older archive file based on the values of + and + properties respectively. + + File name to be written. + Log event that the instance is currently processing. + + + + Creates the file specified in and writes the file content in each entirety i.e. + Header, Content and Footer. + + The name of the file to be written. + Sequence of to be written in the content section of the file. + First attempt to write? + This method is used when the content of the log file is re-written on every write. + + + + Writes the header information and byte order mark to a file. + + File appender associated with the file. + + + + The sequence of to be written in a file after applying any formatting and any + transformations required from the . + + The layout used to render output message. + Sequence of to be written. + Usually it is used to render the header and hooter of the files. + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + The name of the file inside the archive. + + + + Controls the text and color formatting for + + + + + Creates a TextWriter for the console to start building a colored text message + + Active console stream + Optional StringBuilder to optimize performance + TextWriter for the console + + + + Releases the TextWriter for the console after having built a colored text message (Restores console colors) + + Colored TextWriter + Active console stream + Original foreground color for console (If changed) + Original background color for console (If changed) + Flush TextWriter + + + + Changes foreground color for the Colored TextWriter + + Colored TextWriter + New foreground color for the console + Old previous backgroundColor color for the console + Old foreground color for the console + + + + Changes backgroundColor color for the Colored TextWriter + + Colored TextWriter + New backgroundColor color for the console + Old previous backgroundColor color for the console + Old backgroundColor color for the console + + + + Restores console colors back to their original state + + Colored TextWriter + Original foregroundColor color for the console + Original backgroundColor color for the console + + + + Writes multiple characters to console in one operation (faster) + + Colored TextWriter + Output Text + Start Index + End Index + + + + Writes single character to console + + Colored TextWriter + Output Text + + + + Writes whole string and completes with newline + + Colored TextWriter + Output Text + + + + Default row highlight rules for the console printer + + + + + Check if cleanup should be performed on initialize new file + + Base archive file pattern + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + True, when archive cleanup is needed + + + + Create a wildcard file-mask that allows one to find all files belonging to the same archive. + + Base archive file pattern + Wildcard file-mask + + + + Search directory for all existing files that are part of the same archive. + + Base archive file pattern + + + + + Generate the next archive filename for the archive. + + Base archive file pattern + File date of archive + Existing files in the same archive + + + + + Return all files that should be removed from the provided archive. + + Base archive file pattern + Existing files in the same archive + Maximum number of archive files that should be kept + Maximum days of archive files that should be kept + + + + may be configured to compress archived files in a custom way + by setting before logging your first event. + + + + + Create archiveFileName by compressing fileName. + + Absolute path to the log file to compress. + Absolute path to the compressed archive file to create. + + + + Options for JSON serialization + + + + + Add quotes around object keys? + + + + + Format provider for value + + + + + Format string for value + + + + + Should non-ascii characters be encoded + + + + + Should forward slashes be escaped? If true, / will be converted to \/ + + + + + Serialize enum as string value + + + + + Should dictionary keys be sanitized. All characters must either be letters, numbers or underscore character (_). + + Any other characters will be converted to underscore character (_) + + + + + How far down the rabbit hole should the Json Serializer go with object-reflection before stopping + + + + + Line ending mode. + + + + + Insert platform-dependent end-of-line sequence after each line. + + + + + Insert CR LF sequence (ASCII 13, ASCII 10) after each line. + + + + + Insert CR character (ASCII 13) after each line. + + + + + Insert LF character (ASCII 10) after each line. + + + + + Insert null terminator (ASCII 0) after each line. + + + + + Do not insert any line ending. + + + + + Gets the name of the LineEndingMode instance. + + + + + Gets the new line characters (value) of the LineEndingMode instance. + + + + + Initializes a new instance of . + + The mode name. + The new line characters to be used. + + + + Returns the that corresponds to the supplied . + + + The textual representation of the line ending mode, such as CRLF, LF, Default etc. + Name is not case sensitive. + + The value, that corresponds to the . + There is no line ending mode with the specified name. + + + + Compares two objects and returns a + value indicating whether the first one is equal to the second one. + + The first level. + The second level. + The value of mode1.NewLineCharacters == mode2.NewLineCharacters. + + + + Compares two objects and returns a + value indicating whether the first one is not equal to the second one. + + The first mode + The second mode + The value of mode1.NewLineCharacters != mode2.NewLineCharacters. + + + + + + + + + + + + Indicates whether the current object is equal to another object of the same type. + true if the current object is equal to the parameter; otherwise, false. + An object to compare with this object. + + + + Provides a type converter to convert objects to and from other representations. + + + + + + + + + + + Sends log messages by email using SMTP protocol. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ Mail target works best when used with BufferingWrapper target + which lets you send multiple log messages in single mail +

+

+ To set up the buffered mail target in the configuration file, + use the following syntax: +

+ +

+ To set up the buffered mail target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets sender's email address (e.g. joe@domain.com). + + + + + + Gets or sets recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com). + + + + + + Gets or sets a value indicating whether to add new lines between log entries. + + A value of true if new lines should be added; otherwise, false. + + + + + Gets or sets the mail subject. + + + + + + Gets or sets mail message body (repeated for each log message send in one mail). + + Alias for the Layout property. + + + + + Gets or sets encoding to be used for sending e-mail. + + + + + + Gets or sets a value indicating whether to send message as HTML instead of plain text. + + + + + + Gets or sets SMTP Server to be used for sending. + + + + + + Gets or sets SMTP Authentication mode. + + + + + + Gets or sets the username used to connect to SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets the password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic"). + + + + + + Gets or sets a value indicating whether SSL (secure sockets layer) should be used when communicating with SMTP server. + + . + + + + Gets or sets the port number that SMTP Server is listening on. + + + + + + Gets or sets a value indicating whether the default Settings from System.Net.MailSettings should be used. + + + + + + Specifies how outgoing email messages will be handled. + + + + + + Gets or sets the folder where applications save mail messages to be processed by the local SMTP server. + + + + + + Gets or sets the priority used for sending mails. + + + + + + Gets or sets a value indicating whether NewLine characters in the body should be replaced with
tags. +
+ Only happens when is set to true. + +
+ + + Gets or sets a value indicating the SMTP client timeout. + + Warning: zero is not infinite waiting + + + + + + + + + + + + + + Create mail and send with SMTP + + event printed in the body of the event + + + + Create buffer for body + + all events + first event for header + last event for footer + + + + + Set properties of + + last event for username/password + client to set properties on + Configure not at , as the properties could have layout renderers. + + + + Handle if it is a virtual directory. + + + + + + + Create key for grouping. Needed for multiple events in one mail message + + event for rendering layouts + string to group on + + + + Append rendered to + + append to this + event for rendering + append if not null + + + + Create the mail message with the addresses, properties and body. + + + + + Render and add the addresses to + + Addresses appended to this list + layout with addresses, ; separated + event for rendering the + added a address? + + + + Writes log messages to in memory for programmatic retrieval. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets the list of logs gathered in the . + + + + + Gets or sets the max number of items to have in memory + + + + + + + + + + + + Renders the logging event message and adds to + + The logging event. + + + + A parameter to MethodCall. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The layout to use for parameter value. + + + + Initializes a new instance of the class. + + Name of the parameter. + The layout. + + + + Initializes a new instance of the class. + + The name of the parameter. + The layout. + The type of the parameter. + + + + Gets or sets the name of the parameter. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets the type of the parameter. Obsolete alias for + + + + + + Gets or sets the type of the parameter. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Calls the specified static method on each log message and passes contextual parameters to it. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the class name. + + + + + + Gets or sets the method name. The method must be public and static. + + Use the AssemblyQualifiedName , https://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname(v=vs.110).aspx + e.g. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Initializes a new instance of the class. + + Name of the target. + Method to call on logevent. + + + + + + + Calls the specified Method. + + Method parameters. + The logging event. + + + + Calls the specified Method. + + Method parameters. + + + + The base class for all targets which call methods (local or remote). + Manages parameters and type coercion. + + + + + Initializes a new instance of the class. + + + + + Gets the array of parameters to be passed. + + + + + + Prepares an array of parameters to be passed based on the logging event and calls DoInvoke(). + + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The logging event. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Sends log messages over the network. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

+ To print the results, use any application that's able to receive messages over + TCP or UDP. NetCat is + a simple but very powerful command-line tool that can be used for that. This image + demonstrates the NetCat tool receiving log messages from Network target. +

+ +

+ There are two specialized versions of the Network target: Chainsaw + and NLogViewer which write to instances of Chainsaw log4j viewer + or NLogViewer application respectively. +

+
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets the network address. + + + The network address can be: +
    +
  • tcp://host:port - TCP (auto select IPv4/IPv6)
  • +
  • tcp4://host:port - force TCP/IPv4
  • +
  • tcp6://host:port - force TCP/IPv6
  • +
  • udp://host:port - UDP (auto select IPv4/IPv6)
  • +
  • udp4://host:port - force UDP/IPv4
  • +
  • udp6://host:port - force UDP/IPv6
  • +
  • http://host:port/pageName - HTTP using POST verb
  • +
  • https://host:port/pageName - HTTPS using POST verb
  • +
+ For SOAP-based webservice support over HTTP use WebService target. +
+ +
+ + + Gets or sets a value indicating whether to keep connection open whenever possible. + + + + + + Gets or sets a value indicating whether to append newline at the end of log message. + + + + + + Gets or sets the end of line value if a newline is appended at the end of log message . + + + + + + Gets or sets the maximum message size in bytes. On limit breach then action is activated. + + + + + + Gets or sets the maximum simultaneous connections. Requires = false + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more connections than . + + + + + + Gets or sets the maximum queue size for a single connection. Requires = true + + + When having reached the maximum limit, then action will apply. + + + + + + Gets or sets the action that should be taken, when more pending messages than . + + + + + + Gets or sets the size of the connection cache (number of connections which are kept alive). Requires = true + + + + + + Gets or sets the action that should be taken if the message is larger than + + + For TCP sockets then means no-limit, as TCP sockets + performs splitting automatically. + + For UDP Network sender then means splitting the message + into smaller chunks. This can be useful on networks using DontFragment, which drops network packages + larger than MTU-size (1472 bytes). + + + + + + Gets or sets the encoding to be used. + + + + + + Gets or sets the SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP. + + + + + + The number of seconds a connection will remain idle before the first keep-alive probe is sent + + + + + + Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes. + + + + + Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers + + + + + Flush any pending log messages asynchronously (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + Sends the + rendered logging event over the network optionally concatenating it with a newline character. + + The logging event. + + + + Try to remove. + + + + + removed something? + + + + Gets the bytes to be written. + + Log event. + Byte array. + + + + Type of compression for protocol payload + + + + + No compression + + + + + GZip optimal compression + + + + + GZip fastest compression + + + + + The action to be taken when there are more connections then the max. + + + + + Allow new connections when reaching max connection limit + + + + + Just allow it. + + + + + Discard new messages when reaching max connection limit + + + + + Discard the connection item. + + + + + Block until there's more room in the queue. + + + + + Action that should be taken if the message overflows. + + + + + Report an error. + + + + + Split the message into smaller pieces. Only relevant for UDP sockets, as TCP sockets does it automatically. + + + Udp-Network-Sender will split the message into smaller chunks that matches . + This can avoid network-package-drop when network uses DontFragment and message is larger than MTU-size (1472 bytes). + + + + + Discard the entire message. + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Represents a parameter to a NLogViewer target. + + + + + Initializes a new instance of the class. + + + + + Gets or sets viewer parameter name. + + + + + + Gets or sets the layout that should be use to calculate the value for the parameter. + + + + + + Gets or sets whether an attribute with empty value should be included in the output + + + + + + Sends log messages to the remote instance of NLog Viewer. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + Gets or sets a value indicating whether to include NLog-specific extensions to log4j schema. + + + + + + Gets or sets the AppInfo field. By default it's the friendly name of the current AppDomain. + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the information sent over the network. + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include log4j:NDC in output from nested context. + + + + + + Gets or sets the separator for operation-states-stack. + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets a value indicating whether to include dictionary contents. + + + + + + Gets or sets a value indicating whether to include contents of the stack. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the stack separator for log4j:NDC in output from nested context. + + + + + + Gets or sets the renderer for log4j:event logger-xml-attribute (Default ${logger}) + + + + + + Gets the collection of parameters. Each parameter contains a mapping + between NLog layout and a named parameter. + + + + + + Gets the layout renderer which produces Log4j-compatible XML events. + + + + + Gets or sets the instance of that is used to format log messages. + + + + + + Discards log messages. Used mainly for debugging and benchmarking. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets a value indicating whether to perform layout calculation. + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + + + + Does nothing. Optionally it calculates the layout text but + discards the results. + + The logging event. + + + + SMTP authentication modes. + + + + + No authentication. + + + + + Basic - username and password. + + + + + NTLM Authentication. + + + + + Represents logging target. + + + + Are all layouts in this target thread-agnostic, if so we don't precalculate the layouts + + + + The Max StackTraceUsage of all the in this Target + + + + + Gets or sets the name of the target. + + + + + + Target supports reuse of internal buffers, and doesn't have to constantly allocate new buffers + Required for legacy NLog-targets, that expects buffers to remain stable after Write-method exit + + + + + + NLog Layout are by default threadsafe, so multiple threads can be rendering logevents at the same time. + This ensure high concurrency with no lock-congestion for the application-threads, especially when using + or AsyncTaskTarget. + + But if using custom or that are not + threadsafe, then this option can enabled to protect against thread-concurrency-issues. Allowing one + to update to NLog 5.0 without having to fix custom/external layout-dependencies. + + + + + + Gets the object which can be used to synchronize asynchronous operations that must rely on the . + + + + + Gets the logging configuration this target is part of. + + + + + Gets a value indicating whether the target has been initialized. + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Closes the target. + + + + + Flush any pending log messages (in case of asynchronous targets). + + The asynchronous continuation. + + + + Calls the on each volatile layout + used by this target. + This method won't prerender if all layouts in this target are thread-agnostic. + + + The log event. + + + + + + + + Writes the log to the target. + + Log event to write. + + + + Writes the array of log events. + + The log events. + + + + Writes the array of log events. + + The log events. + + + + LogEvent is written to target, but target failed to successfully initialize + + + + + Initializes this instance. + + The configuration. + + + + Closes this instance. + + + + + Releases unmanaged and - optionally - managed resources. + + True to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Initializes the target before writing starts + + + + + Closes the target to release any initialized resources + + + + + Flush any pending log messages + + The asynchronous continuation parameter must be called on flush completed + The asynchronous continuation to be called on flush completed. + + + + Writes logging event to the target destination + + Logging event to be written out. + + + + Writes async log event to the log target. + + Async Log event to be written out. + + + + Writes a log event to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Log event to be written out. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Writes an array of logging events to the log target, in a thread safe manner. + Any override of this method has to provide their own synchronization mechanism. + + !WARNING! Custom targets should only override this method if able to provide their + own synchronization mechanism. -objects are not guaranteed to be + thread-safe, so using them without a SyncRoot-object can be dangerous. + + Logging events to be written out. + + + + Merges (copies) the event context properties from any event info object stored in + parameters of the given event info object. + + The event info object to perform the merge to. + + + + Renders the logevent into a string-result using the provided layout + + The layout. + The logevent info. + String representing log event. + + + + Renders the logevent into a result-value by using the provided layout + + + The layout. + The logevent info. + Fallback value when no value available + Result value when available, else fallback to defaultValue + + + + Resolve from DI + + Avoid calling this while handling a LogEvent, since random deadlocks can occur. + + + + Should the exception be rethrown? + + Upgrade to private protected when using C# 7.2 + + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Register a custom Target. + + Short-cut for registering to default + Type of the Target. + The target type-alias for use in NLog configuration + + + + Marks class as logging target and attaches a type-alias name for use in NLog configuration. + + + + + Initializes a new instance of the class. + + The target type-alias for use in NLog configuration. + + + + Gets or sets a value indicating whether to the target is a wrapper target (used to generate the target summary documentation page). + + + + + Gets or sets a value indicating whether to the target is a compound target (used to generate the target summary documentation page). + + + + + Attribute details for + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the attribute. + The layout of the attribute's value. + + + + Gets or sets the name of the attribute. + + + + + + Gets or sets the layout that will be rendered as the attribute's value. + + + + + + Gets or sets the type of the property. + + + + + + Gets or sets the fallback value when result value is not available + + + + + + Gets or sets when an empty value should cause the property to be included + + + + + + Render Result Value + + Log event for rendering + Result value when available, else fallback to defaultValue + + + + Represents target that supports context capture of Properties + Nested-states + + + See NLog Wiki + + + [Target("MyFirst")] + public sealed class MyFirstTarget : TargetWithContext + { + public MyFirstTarget() + { + this.Host = "localhost"; + } + + [RequiredParameter] + public Layout Host { get; set; } + + protected override void Write(LogEventInfo logEvent) + { + string logMessage = this.RenderLogEvent(this.Layout, logEvent); + string hostName = this.RenderLogEvent(this.Host, logEvent); + return SendTheMessageToRemoteHost(hostName, logMessage); + } + + private void SendTheMessageToRemoteHost(string hostName, string message) + { + // To be implemented + } + } + + Documentation on NLog Wiki + + + + + + + + Gets or sets the option to include all properties from the log events + + + + + + Gets or sets whether to include the contents of the properties-dictionary. + + + + + + Gets or sets whether to include the contents of the nested-state-stack. + + + + + + + + + + + + + + + + + + + + + + Gets or sets a value indicating whether to include contents of the dictionary + + + + + + Gets or sets a value indicating whether to include call site (class and method name) in the + + + + + + Gets or sets a value indicating whether to include source info (file name and line number) in the + + + + + + Gets the array of custom attributes to be passed into the logevent context + + + + + + List of property names to exclude when is true + + + + + + Constructor + + + + + Check if logevent has properties (or context properties) + + + True if properties should be included + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Dictionary with any context properties for the logEvent (Null if none found) + + + + Checks if any context properties, and if any returns them as a single dictionary + + + Optional prefilled dictionary + Dictionary with any context properties for the logEvent (Null if none found) + + + + Creates combined dictionary of all configured properties for logEvent + + + Dictionary with all collected properties for logEvent + + + + Creates combined dictionary of all configured properties for logEvent + + + Optional prefilled dictionary + Dictionary with all collected properties for logEvent + + + + Generates a new unique name, when duplicate names are detected + + LogEvent that triggered the duplicate name + Duplicate item name + Item Value + Dictionary of context values + New (unique) value (or null to skip value). If the same value is used then the item will be overwritten + + + + Returns the captured snapshot of for the + + + Dictionary with MDC context if any, else null + + + + Returns the captured snapshot of dictionary for the + + + Dictionary with ScopeContext properties if any, else null + + + + Returns the captured snapshot of for the + + + Dictionary with MDLC context if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDC context if any, else null + + + + Returns the captured snapshot of nested states from for the + + + Collection of nested state objects if any, else null + + + + Returns the captured snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with GDC context if any, else null + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + MDC key + MDC value + Snapshot of MDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with MDLC context if any, else null + + + + Takes snapshot of dictionary for the + + + Optional pre-allocated dictionary for the snapshot + Dictionary with ScopeContext properties if any, else null + + + + Take snapshot of a single object value from + + Log event + MDLC key + MDLC value + Snapshot of MDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from dictionary + + Log event + ScopeContext Dictionary key + ScopeContext Dictionary value + Snapshot of ScopeContext property-value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDC context if any, else null + + + + Take snapshot of a single object value from + + Log event + NDC value + Snapshot of NDC value + Include object value in snapshot + + + + Takes snapshot of for the + + + Collection with NDLC context if any, else null + + + + Takes snapshot of nested states from for the + + + Collection with stack items if any, else null + + + + Take snapshot of a single object value from + + Log event + NDLC value + Snapshot of NDLC value + Include object value in snapshot + + + + Take snapshot of a single object value from nested states + + Log event + nested state value + Snapshot of stack item value + Include object value in snapshot + + + + Take snapshot of a single object value + + Log event + Key Name (null when NDC / NDLC) + Object Value + Snapshot of value + Include object value in snapshot + + + Internal Layout that allows capture of properties-dictionary + + + Internal Layout that allows capture of nested-states-stack + + + + Represents target that supports string formatting using layouts. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the layout used to format log messages. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Represents target that supports string formatting using layouts. + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Gets or sets the text to be rendered. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + + Gets or sets the footer. + + + + + + Gets or sets the header. + + + + + + Gets or sets the layout with header and footer. + + The layout with header and footer. + + + + Sends log messages through System.Diagnostics.Trace. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Force use independent of + + + + + + Forward to (Instead of ) + + + Trace.Fail can have special side-effects, and give fatal exceptions, message dialogs or Environment.FailFast + + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + + + + Initializes a new instance of the class. + + + The default value of the layout is: ${longdate}|${level:uppercase=true}|${logger}|${message:withexception=true} + + Name of the target. + + + + + + + + + + Writes the specified logging event to the facility. + + Redirects the log message depending on and . + When is false: + - writes to + - writes to + - writes to + - writes to + - writes to + - writes to + + The logging event. + + + + Web service protocol. + + + + + Use SOAP 1.1 Protocol. + + + + + Use SOAP 1.2 Protocol. + + + + + Use HTTP POST Protocol. + + + + + Use HTTP GET Protocol. + + + + + Do an HTTP POST of a JSON document. + + + + + Do an HTTP POST of an XML document. + + + + + Web Service Proxy Configuration Type + + + + + Default proxy configuration from app.config (System.Net.WebRequest.DefaultWebProxy) + + + Example of how to configure default proxy using app.config + + <system.net> + <defaultProxy enabled = "true" useDefaultCredentials = "true" > + <proxy usesystemdefault = "True" /> + </defaultProxy> + </system.net> + + + + + + Automatic use of proxy with authentication (cached) + + + + + Disables use of proxy (fast) + + + + + Custom proxy address (cached) + + + + + Calls the specified web service on each log message. + + + See NLog Wiki + + Documentation on NLog Wiki + + The web service must implement a method that accepts a number of string parameters. + + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +

The example web service that works with this example is shown below

+ +
+
+ + + dictionary that maps a concrete implementation + to a specific -value. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target + + + + Gets or sets the web service URL. + + + + + + Gets or sets the value of the User-agent HTTP header. + + + + + + Gets or sets the Web service method name. Only used with Soap. + + + + + + Gets or sets the Web service namespace. Only used with Soap. + + + + + + Gets or sets the protocol to be used when calling web service. + + + + + + Gets or sets the proxy configuration when calling web service + + + Changing ProxyType on Net5 (or newer) will turn off Http-connection-pooling + + + + + + Gets or sets the custom proxy address, include port separated by a colon + + + + + + Should we include the BOM (Byte-order-mark) for UTF? Influences the property. + + This will only work for UTF-8. + + + + + + Gets or sets the encoding. + + + + + + Gets or sets a value whether escaping be done according to Rfc3986 (Supports Internationalized Resource Identifiers - IRIs) + + A value of true if Rfc3986; otherwise, false for legacy Rfc2396. + + + + + Gets or sets a value whether escaping be done according to the old NLog style (Very non-standard) + + A value of true if legacy encoding; otherwise, false for standard UTF8 encoding. + + + + + Gets or sets the name of the root XML element, + if POST of XML document chosen. + If so, this property must not be null. + (see and ). + + + + + + Gets or sets the (optional) root namespace of the XML document, + if POST of XML document chosen. + (see and ). + + + + + + Gets the array of parameters to be passed. + + + + + + Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in parameters) + + + + + + Calls the target method. Must be implemented in concrete classes. + + Method call parameters. + + + + Calls the target DoInvoke method, and handles AsyncContinuation callback + + Method call parameters. + The continuation. + + + + Invokes the web service method. + + Parameters to be passed. + The logging event. + + + + + + + + + + Builds the URL to use when calling the web service for a message, depending on the WebServiceProtocol. + + + + + Write from input to output. Fix the UTF-8 bom + + + + + base class for POST formatters, that + implement former PrepareRequest() method, + that creates the content for + the requested kind of HTTP request + + + + + Win32 file attributes. + + + For more information see https://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/createfile.asp. + + + + + Read-only file. + + + + + Hidden file. + + + + + System file. + + + + + File should be archived. + + + + + Device file. + + + + + Normal file. + + + + + File is temporary (should be kept in cache and not + written to disk if possible). + + + + + Sparse file. + + + + + Reparse point. + + + + + Compress file contents. + + + + + File should not be indexed by the content indexing service. + + + + + Encrypted file. + + + + + The system writes through any intermediate cache and goes directly to disk. + + + + + The system opens a file with no system caching. + + + + + Delete file after it is closed. + + + + + A file is accessed according to POSIX rules. + + + + + Asynchronous request queue. + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Gets or sets the request limit. + + + + + Gets or sets the action to be taken when there's no more room in + the queue and another request is enqueued. + + + + + Notifies about log event that was dropped when set to + + + + + Notifies when queue size is growing over + + + + + Raise event when queued element was dropped because of queue overflow + + Dropped queue item + + + + Raise event when RequestCount overflow + + current requests count + + + + Provides asynchronous, buffered execution of target writes. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ Asynchronous target wrapper allows the logger code to execute more quickly, by queuing + messages and processing them in a separate thread. You should wrap targets + that spend a non-trivial amount of time in their Write() method with asynchronous + target to speed up logging. +

+

+ Because asynchronous logging is quite a common scenario, NLog supports a + shorthand notation for wrapping all targets with AsyncWrapper. Just add async="true" to + the <targets/> element in the configuration file. +

+ + + ... your targets go here ... + + ]]> +
+ +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of requests in the queue. + The action to be taken when the queue overflows. + + + + Gets or sets the number of log events that should be processed in a batch + by the lazy writer thread. + + + + + + Gets or sets the time in milliseconds to sleep between batches. (1 or less means trigger on new activity) + + + + + + Raise event when Target cannot store LogEvent. + Event arg contains lost LogEvents + + + + + Raises when event queue grow. + Queue can grow when was set to + + + + + Gets or sets the action to be taken when the lazy writer thread request queue count + exceeds the set limit. + + + + + + Gets or sets the limit on the number of requests in the lazy writer thread request queue. + + + + + + Gets or sets the number of batches of to write before yielding into + + + Performance is better when writing many small batches, than writing a single large batch + + + + + + Gets or sets whether to use the locking queue, instead of a lock-free concurrent queue + + + The locking queue is less concurrent when many logger threads, but reduces memory allocation + + + + + + Gets the queue of lazy writer thread requests. + + + + + Schedules a flush of pending events in the queue (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + Initializes the target by starting the lazy writer timer. + + + + + Shuts down the lazy writer timer. + + + + + Starts the lazy writer thread which periodically writes + queued log messages. + + + + + Attempts to start an instant timer-worker-thread which can write + queued log messages. + + Returns true when scheduled a timer-worker-thread + + + + Stops the lazy writer thread. + + + + + Adds the log event to asynchronous queue to be processed by + the lazy writer thread. + + The log event. + + The is called + to ensure that the log event can be processed in another thread. + + + + + Write to queue without locking + + + + + + The action to be taken when the queue overflows. + + + + + Grow the queue. + + + + + Discard the overflowing item. + + + + + Block until there's more room in the queue. + + + + + Causes a flush on a wrapped target if LogEvent satisfies the . + If condition isn't set, flushes on each write. + + + See NLog Wiki + + Documentation on NLog Wiki + +

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Gets or sets the condition expression. Log events who meet this condition will cause + a flush on the wrapped target. + + + + + + Delay the flush until the LogEvent has been confirmed as written + + If not explicitly set, then disabled by default for and AsyncTaskTarget + + + + + + Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush + + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + Name of the target + + + + Initializes a new instance of the class. + + The wrapped target. + + + + + + + Forwards the call to the .Write() + and calls on it if LogEvent satisfies + the flush condition or condition is null. + + Logging event to be written out. + + + + Schedules a flush operation, that triggers when all pending flush operations are completed (in case of asynchronous targets). + + The asynchronous continuation. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + + + + Initializes a new instance of the class. + + The wrapped target. + Size of the buffer. + The flush timeout. + The action to take when the buffer overflows. + + + + Gets or sets the number of log events to be buffered. + + + + + + Gets or sets the timeout (in milliseconds) after which the contents of buffer will be flushed + if there's no write in the specified period of time. Use -1 to disable timed flushes. + + + + + + Gets or sets a value indicating whether to use sliding timeout. + + + This value determines how the inactivity period is determined. If sliding timeout is enabled, + the inactivity timer is reset after each write, if it is disabled - inactivity timer will + count from the first event written to the buffer. + + + + + + Gets or sets the action to take if the buffer overflows. + + + Setting to will replace the + oldest event with new events without sending events down to the wrapped target, and + setting to will flush the + entire buffer to the wrapped target. + + + + + + Flushes pending events in the buffer (if any), followed by flushing the WrappedTarget. + + The asynchronous continuation. + + + + + + + Closes the target by flushing pending events in the buffer (if any). + + + + + Adds the specified log event to the buffer and flushes + the buffer in case the buffer gets full. + + The log event. + + + + The action to be taken when the buffer overflows. + + + + + Flush the content of the buffer. + + + + + Discard the oldest item. + + + + + A base class for targets which wrap other (multiple) targets + and provide various forms of target routing. + + + + + Initializes a new instance of the class. + + The targets. + + + + Gets the collection of targets managed by this compound target. + + + + + + + + + + + Flush any pending log messages for all wrapped targets. + + The asynchronous continuation. + + + + Concurrent Asynchronous request queue based on + + + + + Initializes a new instance of the AsyncRequestQueue class. + + Request limit. + The overflow action. + + + + Gets the number of requests currently in the queue. + + + Only for debugging purposes + + + + + Enqueues another item. If the queue is overflown the appropriate + action is taken as specified by . + + The log event info. + Queue was empty before enqueue + + + + Dequeues a maximum of count items from the queue + and adds returns the list containing them. + + Maximum number of items to be dequeued + The array of log events. + + + + Dequeues into a preallocated array, instead of allocating a new one + + Maximum number of items to be dequeued + Preallocated list + + + + Clears the queue. + + + + + Provides fallback-on-error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to server1, + and if it fails, messages go to server2.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Gets or sets a value indicating whether to return to the first target after any successful write. + + + + + + Gets or sets whether to enable batching, but fallback will be handled individually + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + The log event. + + + + + + + Forwards the log event to the sub-targets until one of them succeeds. + + + + + Filtering rule for . + + + + + Initializes a new instance of the FilteringRule class. + + + + + Initializes a new instance of the FilteringRule class. + + Condition to be tested against all events. + Filter to apply to all log events when the first condition matches any of them. + + + + Gets or sets the condition to be tested. + + + + + + Gets or sets the resulting filter to be applied when the condition matches. + + + + + + Filters log entries based on a condition. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages not contains the string '1' to be ignored.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The condition. + + + + Initializes a new instance of the class. + + The wrapped target. + The condition. + + + + Gets or sets the condition expression. Log events who meet this condition will be forwarded + to the wrapped target. + + + + + + Gets or sets the filter. Log events who evaluates to will be discarded + + + + + + Checks the condition against the passed log event. + If the condition is met, the log event is forwarded to + the wrapped target. + + Log event. + + + + + + + A target that buffers log events and sends them in batches to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Identifier to perform group-by + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + Group by identifier. + + + + + + + + + + Limits the number of messages written per timespan to the wrapped target. + + + See NLog Wiki + + Documentation on NLog Wiki + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the target. + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + + + + Initializes a new instance of the class. + + The wrapped target. + Maximum number of messages written per interval. + Interval in which the maximum number of messages can be written. + + + + Gets or sets the maximum allowed number of messages written per . + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets or sets the interval in which messages will be written up to the number of messages. + + + Messages received after has been reached in the current will be discarded. + + + + + + Gets the number of written in the current . + + + + + + Initializes the target and resets the current Interval and . + + + + + Writes log event to the wrapped target if the current is lower than . + If the is already reached, no log event will be written to the wrapped target. + resets when the current is expired. + + Log event to be written out. + + + + Arguments for events. + + + + + Initializes a new instance of the class. + + LogEvent that have been dropped + + + + Instance of that was dropped by + + + + + Raises by when + queue is full + and set to + By default queue doubles it size. + + + + + Initializes a new instance of the class. + + Required queue size + Current queue size + + + + New queue size + + + + + Current requests count + + + + + Filters buffered log entries based on a set of conditions that are evaluated on a group of events. + + + See NLog Wiki + + Documentation on NLog Wiki + + PostFilteringWrapper must be used with some type of buffering target or wrapper, such as + AsyncTargetWrapper, BufferingWrapper or ASPNetBufferingWrapper. + + +

+ This example works like this. If there are no Warn,Error or Fatal messages in the buffer + only Info messages are written to the file, but if there are any warnings or errors, + the output includes detailed trace (levels >= Debug). You can plug in a different type + of buffering wrapper (such as ASPNetBufferingWrapper) to achieve different + functionality. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + + + + Gets or sets the default filter to be applied when no specific rule matches. + + + + + + Gets the collection of filtering rules. The rules are processed top-down + and the first rule that matches determines the filtering condition to + be applied to log events. + + + + + + + + + Evaluates all filtering rules to find the first one that matches. + The matching rule determines the filtering condition to be applied + to all items in a buffer. If no condition matches, default filter + is applied to the array of log events. + + Array of log events to be post-filtered. + + + + Evaluate all the rules to get the filtering condition + + + + + + + Sends log messages to a randomly selected target. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt + chosen randomly on a per-message basis. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the log event to one of the sub-targets. + The sub-target is randomly chosen. + + The log event. + + + + Repeats each log event the specified number of times. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each log message to be repeated 3 times.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The repeat count. + + + + Initializes a new instance of the class. + + The wrapped target. + The repeat count. + + + + Gets or sets the number of times to repeat each log message. + + + + + + Forwards the log message to the by calling the method times. + + The log event. + + + + Retries in case of write error. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes each write attempt to be repeated 3 times, + sleeping 1 second between attempts if first one fails.

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Initializes a new instance of the class. + + The wrapped target. + The retry count. + The retry delay milliseconds. + + + + Gets or sets the number of retries that should be attempted on the wrapped target in case of a failure. + + + + + + Gets or sets the time to wait between retries in milliseconds. + + + + + + Gets or sets whether to enable batching, and only apply single delay when a whole batch fails + + + + + + Special SyncObject to allow closing down Target while busy retrying + + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Writes the specified log event to the wrapped target in a thread-safe manner. + + The log event. + + + + Writes the specified log event to the wrapped target, retrying and pausing in case of an error. + + The log event. + + + + Distributes log events to targets in a round-robin fashion. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to either file1.txt or file2.txt. + Each odd message is written to file2.txt, each even message goes to file1.txt. +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Ensures forwarding happens without holding lock + + + + + + Forwards the write to one of the targets from + the collection. + + The log event. + + The writes are routed in a round-robin fashion. + The first log event goes to the first target, the second + one goes to the second target and so on looping to the + first target when there are no more targets available. + In general request N goes to Targets[N % Targets.Count]. + + + + + Writes log events to all targets. + + + See NLog Wiki + + Documentation on NLog Wiki + +

This example causes the messages to be written to both file1.txt or file2.txt +

+

+ To set up the target in the configuration file, + use the following syntax: +

+ +

+ To set up the log target programmatically use code like this: +

+ +
+
+ + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Name of the target. + The targets. + + + + Initializes a new instance of the class. + + The targets. + + + + Forwards the specified log event to all sub-targets. + + The log event. + + + + Writes an array of logging events to the log target. By default it iterates on all + events and passes them to "Write" method. Inheriting classes can use this method to + optimize batch writes. + + Logging events to be written out. + + + + Base class for targets wrap other (single) targets. + + + + + Gets or sets the target that is wrapped by this target. + + + + + + + + + + + + Writes logging event to the log target. Must be overridden in inheriting + classes. + + Logging event to be written out. + + + + Builtin IFileCompressor implementation utilizing the .Net4.5 specific + and is used as the default value for on .Net4.5. + So log files created via can be zipped when archived + w/o 3rd party zip library when run on .Net4.5 or higher. + + + + + Implements using the .Net4.5 specific + + + + + Current local time retrieved directly from DateTime.Now. + + + + + Gets current local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Current UTC time retrieved directly from DateTime.UtcNow. + + + + + Gets current UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Fast time source that updates current time only once per tick (15.6 milliseconds). + + + + + Gets raw uncached time from derived time source. + + + + + Gets current time cached for one system tick (15.6 milliseconds). + + + + + Fast local time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached local time directly from DateTime.Now. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to local time. + + + + + Fast UTC time source that is updated once per tick (15.6 milliseconds). + + + + + Gets uncached UTC time directly from DateTime.UtcNow. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to UTC time. + + + + + Defines source of current time. + + + + + Gets current time. + + + + + Gets or sets current global time source used in all log events. + + + Default time source is . + + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Converts the specified system time to the same form as the time value originated from this time source. + + The system originated time value to convert. + + The value of converted to the same form + as time values originated from this source. + + + + There are situations when NLog have to compare the time originated from TimeSource + to the time originated externally in the system. + To be able to provide meaningful result of such comparisons the system time must be expressed in + the same form as TimeSource time. + + + Examples: + - If the TimeSource provides time values of local time, it should also convert the provided + to the local time. + - If the TimeSource shifts or skews its time values, it should also apply + the same transform to the given . + + + + + + Marks class as a time source and assigns a name to it. + + + + + Initializes a new instance of the class. + + The Time type-alias for use in NLog configuration. + + + + Indicates that the value of the marked element could be null sometimes, + so checking for null is required before its usage. + + + [CanBeNull] object Test() => null; + + void UseTest() { + var p = Test(); + var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + } + + + + + Indicates that the value of the marked element can never be null. + + + [NotNull] object Foo() { + return null; // Warning: Possible 'null' assignment + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can never be null. + + + public void Foo([ItemNotNull]List<string> books) + { + foreach (var book in books) { + if (book != null) // Warning: Expression is always true + Console.WriteLine(book.ToUpper()); + } + } + + + + + Can be applied to symbols of types derived from IEnumerable as well as to symbols of Task + and Lazy classes to indicate that the value of a collection item, of the Task.Result property + or of the Lazy.Value property can be null. + + + public void Foo([ItemCanBeNull]List<string> books) + { + foreach (var book in books) + { + // Warning: Possible 'System.NullReferenceException' + Console.WriteLine(book.ToUpper()); + } + } + + + + + Indicates that the marked method builds string by the format pattern and (optional) arguments. + The parameter, which contains the format string, should be given in the constructor. The format string + should be in -like form. + + + [StringFormatMethod("message")] + void ShowError(string message, params object[] args) { /* do something */ } + + void Foo() { + ShowError("Failed: {0}"); // Warning: Non-existing argument in format string + } + + + + + Specifies which parameter of an annotated method should be treated as the format string + + + + + Indicates that the marked parameter is a message template where placeholders are to be replaced by the following arguments + in the order in which they appear + + + void LogInfo([StructuredMessageTemplate]string message, params object[] args) { /* do something */ } + + void Foo() { + LogInfo("User created: {username}"); // Warning: Non-existing argument in format string + } + + + + + Use this annotation to specify a type that contains static or const fields + with values for the annotated property/field/parameter. + The specified type will be used to improve completion suggestions. + + + namespace TestNamespace + { + public class Constants + { + public static int INT_CONST = 1; + public const string STRING_CONST = "1"; + } + + public class Class1 + { + [ValueProvider("TestNamespace.Constants")] public int myField; + public void Foo([ValueProvider("TestNamespace.Constants")] string str) { } + + public void Test() + { + Foo(/*try completion here*/);// + myField = /*try completion here*/ + } + } + } + + + + + Indicates that the integral value falls into the specified interval. + It's allowed to specify multiple non-intersecting intervals. + Values of interval boundaries are inclusive. + + + void Foo([ValueRange(0, 100)] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the integral value never falls below zero. + + + void Foo([NonNegativeValue] int value) { + if (value == -1) { // Warning: Expression is always 'false' + ... + } + } + + + + + Indicates that the function argument should be a string literal and match + one of the parameters of the caller function. This annotation is used for parameters + like 'string paramName' parameter of the constructor. + + + void Foo(string param) { + if (param == null) + throw new ArgumentNullException("par"); // Warning: Cannot resolve symbol + } + + + + + Indicates that the method is contained in a type that implements + System.ComponentModel.INotifyPropertyChanged interface and this method + is used to notify that some property value changed. + + + The method should be non-static and conform to one of the supported signatures: + + NotifyChanged(string) + NotifyChanged(params string[]) + NotifyChanged{T}(Expression{Func{T}}) + NotifyChanged{T,U}(Expression{Func{T,U}}) + SetProperty{T}(ref T, T, string) + + + + public class Foo : INotifyPropertyChanged { + public event PropertyChangedEventHandler PropertyChanged; + + [NotifyPropertyChangedInvocator] + protected virtual void NotifyChanged(string propertyName) { ... } + + string _name; + + public string Name { + get { return _name; } + set { _name = value; NotifyChanged("LastName"); /* Warning */ } + } + } + + Examples of generated notifications: + + NotifyChanged("Property") + NotifyChanged(() => Property) + NotifyChanged((VM x) => x.Property) + SetProperty(ref myField, value, "Property") + + + + + + Describes dependency between method input and output. + + +

Function Definition Table syntax:

+ + FDT ::= FDTRow [;FDTRow]* + FDTRow ::= Input => Output | Output <= Input + Input ::= ParameterName: Value [, Input]* + Output ::= [ParameterName: Value]* {halt|stop|void|nothing|Value} + Value ::= true | false | null | notnull | canbenull + + If the method has a single input parameter, its name could be omitted.
+ Using halt (or void/nothing, which is the same) for the method output + means that the method doesn't return normally (throws or terminates the process).
+ Value canbenull is only applicable for output parameters.
+ You can use multiple [ContractAnnotation] for each FDT row, or use single attribute + with rows separated by the semicolon. There is no notion of order rows, all rows are checked + for applicability and applied per each program state tracked by the analysis engine.
+
+ + + [ContractAnnotation("=> halt")] + public void TerminationMethod() + + + [ContractAnnotation("null <= param:null")] // reverse condition syntax + public string GetName(string surname) + + + [ContractAnnotation("s:null => true")] + public bool IsNullOrEmpty(string s) // string.IsNullOrEmpty() + + + // A method that returns null if the parameter is null, + // and not null if the parameter is not null + [ContractAnnotation("null => null; notnull => notnull")] + public object Transform(object data) + + + [ContractAnnotation("=> true, result: notnull; => false, result: null")] + public bool TryParse(string s, out Person result) + + +
+ + + Indicates whether the marked element should be localized. + + + [LocalizationRequiredAttribute(true)] + class Foo { + string str = "my string"; // Warning: Localizable string + } + + + + + Indicates that the value of the marked type (or its derivatives) + cannot be compared using '==' or '!=' operators and Equals() + should be used instead. However, using '==' or '!=' for comparison + with null is always permitted. + + + [CannotApplyEqualityOperator] + class NoEquality { } + + class UsesNoEquality { + void Test() { + var ca1 = new NoEquality(); + var ca2 = new NoEquality(); + if (ca1 != null) { // OK + bool condition = ca1 == ca2; // Warning + } + } + } + + + + + When applied to a target attribute, specifies a requirement for any type marked + with the target attribute to implement or inherit specific type or types. + + + [BaseTypeRequired(typeof(IComponent)] // Specify requirement + class ComponentAttribute : Attribute { } + + [Component] // ComponentAttribute requires implementing IComponent interface + class MyComponent : IComponent { } + + + + + Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + so this symbol will be ignored by usage-checking inspections.
+ You can use and + to configure how this attribute is applied. +
+ + [UsedImplicitly] + public class TypeConverter {} + + public class SummaryData + { + [UsedImplicitly(ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature)] + public SummaryData() {} + } + + [UsedImplicitly(ImplicitUseTargetFlags.WithInheritors | ImplicitUseTargetFlags.Default)] + public interface IService {} + +
+ + + Can be applied to attributes, type parameters, and parameters of a type assignable from . + When applied to an attribute, the decorated attribute behaves the same as . + When applied to a type parameter or to a parameter of type , + indicates that the corresponding type is used implicitly. + + + + + Specifies the details of implicitly used symbol when it is marked + with or . + + + + Only entity marked with attribute considered used. + + + Indicates implicit assignment to a member. + + + + Indicates implicit instantiation of a type with fixed constructor signature. + That means any unused constructor parameters won't be reported as such. + + + + Indicates implicit instantiation of a type. + + + + Specifies what is considered to be used implicitly when marked + with or . + + + + Members of the type marked with the attribute are considered used. + + + Inherited entities are considered used. + + + Entity marked with the attribute and all its members considered used. + + + + This attribute is intended to mark publicly available API, + which should not be removed and so is treated as used. + + + + + Tells the code analysis engine if the parameter is completely handled when the invoked method is on stack. + If the parameter is a delegate, indicates that delegate can only be invoked during method execution + (the delegate can be invoked zero or multiple times, but not stored to some field and invoked later, + when the containing method is no longer on the execution stack). + If the parameter is an enumerable, indicates that it is enumerated while the method is executed. + If is true, the attribute will only takes effect if the method invocation is located under the 'await' expression. + + + + + Require the method invocation to be used under the 'await' expression for this attribute to take effect on code analysis engine. + Can be used for delegate/enumerable parameters of 'async' methods. + + + + + Indicates that a method does not make any observable state changes. + The same as System.Diagnostics.Contracts.PureAttribute. + + + [Pure] int Multiply(int x, int y) => x * y; + + void M() { + Multiply(123, 42); // Warning: Return value of pure method is not used + } + + + + + Indicates that the return value of the method invocation must be used. + + + Methods decorated with this attribute (in contrast to pure methods) might change state, + but make no sense without using their return value.
+ Similarly to , this attribute + will help to detect usages of the method when the return value is not used. + Optionally, you can specify a message to use when showing warnings, e.g. + [MustUseReturnValue("Use the return value to...")]. +
+
+ + + This annotation allows to enforce allocation-less usage patterns of delegates for performance-critical APIs. + When this annotation is applied to the parameter of delegate type, IDE checks the input argument of this parameter: + * When lambda expression or anonymous method is passed as an argument, IDE verifies that the passed closure + has no captures of the containing local variables and the compiler is able to cache the delegate instance + to avoid heap allocations. Otherwise the warning is produced. + * IDE warns when method name or local function name is passed as an argument as this always results + in heap allocation of the delegate instance. + + + In C# 9.0 code IDE would also suggest to annotate the anonymous function with 'static' modifier + to make use of the similar analysis provided by the language/compiler. + + + + + Indicates the type member or parameter of some type, that should be used instead of all other ways + to get the value of that type. This annotation is useful when you have some "context" value evaluated + and stored somewhere, meaning that all other ways to get this value must be consolidated with existing one. + + + class Foo { + [ProvidesContext] IBarService _barService = ...; + + void ProcessNode(INode node) { + DoSomething(node, node.GetGlobalServices().Bar); + // ^ Warning: use value of '_barService' field + } + } + + + + + Indicates that a parameter is a path to a file or a folder within a web project. + Path can be relative or absolute, starting from web root (~). + + + + + An extension method marked with this attribute is processed by code completion + as a 'Source Template'. When the extension method is completed over some expression, its source code + is automatically expanded like a template at call site. + + + Template method body can contain valid source code and/or special comments starting with '$'. + Text inside these comments is added as source code when the template is applied. Template parameters + can be used either as additional method parameters or as identifiers wrapped in two '$' signs. + Use the attribute to specify macros for parameters. + + + In this example, the 'forEach' method is a source template available over all values + of enumerable types, producing ordinary C# 'foreach' statement and placing caret inside block: + + [SourceTemplate] + public static void forEach<T>(this IEnumerable<T> xs) { + foreach (var x in xs) { + //$ $END$ + } + } + + + + + + Allows specifying a macro for a parameter of a source template. + + + You can apply the attribute on the whole method or on any of its additional parameters. The macro expression + is defined in the property. When applied on a method, the target + template parameter is defined in the property. To apply the macro silently + for the parameter, set the property value = -1. + + + Applying the attribute on a source template method: + + [SourceTemplate, Macro(Target = "item", Expression = "suggestVariableName()")] + public static void forEach<T>(this IEnumerable<T> collection) { + foreach (var item in collection) { + //$ $END$ + } + } + + Applying the attribute on a template method parameter: + + [SourceTemplate] + public static void something(this Entity x, [Macro(Expression = "guid()", Editable = -1)] string newguid) { + /*$ var $x$Id = "$newguid$" + x.ToString(); + x.DoSomething($x$Id); */ + } + + + + + + Allows specifying a macro that will be executed for a source template + parameter when the template is expanded. + + + + + Allows specifying which occurrence of the target parameter becomes editable when the template is deployed. + + + If the target parameter is used several times in the template, only one occurrence becomes editable; + other occurrences are changed synchronously. To specify the zero-based index of the editable occurrence, + use values >= 0. To make the parameter non-editable when the template is expanded, use -1. + + + + + Identifies the target parameter of a source template if the + is applied on a template method. + + + + + Indicates how method, constructor invocation, or property access + over collection type affects the contents of the collection. + When applied to a return value of a method indicates if the returned collection + is created exclusively for the caller (CollectionAccessType.UpdatedContent) or + can be read/updated from outside (CollectionAccessType.Read | CollectionAccessType.UpdatedContent) + Use to specify the access type. + + + Using this attribute only makes sense if all collection methods are marked with this attribute. + + + public class MyStringCollection : List<string> + { + [CollectionAccess(CollectionAccessType.Read)] + public string GetFirstString() + { + return this.ElementAt(0); + } + } + class Test + { + public void Foo() + { + // Warning: Contents of the collection is never updated + var col = new MyStringCollection(); + string x = col.GetFirstString(); + } + } + + + + + Provides a value for the to define + how the collection method invocation affects the contents of the collection. + + + + Method does not use or modify content of the collection. + + + Method only reads content of the collection but does not modify it. + + + Method can change content of the collection but does not add new elements. + + + Method can add new elements to the collection. + + + + Indicates that the marked method is assertion method, i.e. it halts the control flow if + one of the conditions is satisfied. To set the condition, mark one of the parameters with + attribute. + + + + + Indicates the condition parameter of the assertion method. The method itself should be + marked by attribute. The mandatory argument of + the attribute is the assertion type. + + + + + Specifies assertion type. If the assertion method argument satisfies the condition, + then the execution continues. Otherwise, execution is assumed to be halted. + + + + Marked parameter should be evaluated to true. + + + Marked parameter should be evaluated to false. + + + Marked parameter should be evaluated to null value. + + + Marked parameter should be evaluated to not null value. + + + + Indicates that the marked method unconditionally terminates control flow execution. + For example, it could unconditionally throw exception. + + + + + Indicates that the method is a pure LINQ method, with postponed enumeration (like Enumerable.Select, + .Where). This annotation allows inference of [InstantHandle] annotation for parameters + of delegate type by analyzing LINQ method chains. + + + + + Indicates that IEnumerable passed as a parameter is not enumerated. + Use this annotation to suppress the 'Possible multiple enumeration of IEnumerable' inspection. + + + static void ThrowIfNull<T>([NoEnumeration] T v, string n) where T : class + { + // custom check for null but no enumeration + } + + void Foo(IEnumerable<string> values) + { + ThrowIfNull(values, nameof(values)); + var x = values.ToList(); // No warnings about multiple enumeration + } + + + + + Indicates that the marked parameter, field, or property is a regular expression pattern. + + + + + Language of injected code fragment inside marked by string literal. + + + + + Indicates that the marked parameter, field, or property is accepting a string literal + containing code fragment in a language specified by the . + + + void Foo([LanguageInjection(InjectedLanguage.CSS, Prefix = "body{", Suffix = "}")] string cssProps) + { + // cssProps should only contains a list of CSS properties + } + + + + Specify a language of injected code fragment. + + + Specify a string that "precedes" injected string literal. + + + Specify a string that "follows" injected string literal. + + + + Prevents the Member Reordering feature from tossing members of the marked class. + + + The attribute must be mentioned in your member reordering patterns. + + +
+
diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/.signature.p7s b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/.signature.p7s new file mode 100644 index 0000000..75e2762 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/.signature.p7s differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0.nupkg b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0.nupkg new file mode 100644 index 0000000..929467f Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0.nupkg differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..599e738 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/x86/SQLite.Interop.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/x86/SQLite.Interop.dll new file mode 100644 index 0000000..8ead414 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net20/x86/SQLite.Interop.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..599e738 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/x86/SQLite.Interop.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/x86/SQLite.Interop.dll new file mode 100644 index 0000000..e8e7ca5 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net40/x86/SQLite.Interop.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..599e738 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/x86/SQLite.Interop.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/x86/SQLite.Interop.dll new file mode 100644 index 0000000..f8cbb7c Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net45/x86/SQLite.Interop.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..599e738 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/x86/SQLite.Interop.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/x86/SQLite.Interop.dll new file mode 100644 index 0000000..035b7fa Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net451/x86/SQLite.Interop.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..599e738 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/x86/SQLite.Interop.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/x86/SQLite.Interop.dll new file mode 100644 index 0000000..98e74c4 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/build/net46/x86/SQLite.Interop.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net20/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net20/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..30d0da9 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net20/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,166 @@ + + + + + + + + + + + + $([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)')) + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net40/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net40/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..30d0da9 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net40/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,166 @@ + + + + + + + + + + + + $([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)')) + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net45/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net45/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..30d0da9 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net45/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,166 @@ + + + + + + + + + + + + $([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)')) + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net451/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net451/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..30d0da9 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net451/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,166 @@ + + + + + + + + + + + + $([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)')) + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net46/Stub.System.Data.SQLite.Core.NetFramework.targets b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net46/Stub.System.Data.SQLite.Core.NetFramework.targets new file mode 100644 index 0000000..30d0da9 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/buildTransitive/net46/Stub.System.Data.SQLite.Core.NetFramework.targets @@ -0,0 +1,166 @@ + + + + + + + + + + + + $([MSBuild]::MakeRelative('$(MSBuildThisFileDirectory)..', '$(MSBuildThisFileDirectory)')) + + + + + + + + + + + + + + %(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + bin\%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + $(PostBuildEventDependsOn); + CopySQLiteInteropFiles; + + + $(BuildDependsOn); + CopySQLiteInteropFiles; + + + $(CleanDependsOn); + CleanSQLiteInteropFiles; + + + + + + + + CollectSQLiteInteropFiles; + $(PipelineCollectFilesPhaseDependsOn); + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll new file mode 100644 index 0000000..f59defa Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll.altconfig b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll.altconfig new file mode 100644 index 0000000..ad8b7c5 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.dll.altconfig @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.xml b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.xml new file mode 100644 index 0000000..b465fbe --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net20/System.Data.SQLite.xml @@ -0,0 +1,24166 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + These are the possible operations used to mutate a flags enumeration + value. + + + + + These are the trace categories used by various components within this + library. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it + is set by the method on its first call. + Later, it is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + These are the currently enabled categories of trace messages. If a + trace message belongs to one of these categories, it will be emitted; + otherwise, it will be silently dropped. + + + + + This boolean flag will be non-zero when the enabled trace categories + have been setup. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines if the specified trace category is enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace category to check. + + + Non-zero if the specified trace category is enabled. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + Non-zero if the caller detected "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + + method. On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Attempts to determine which trace categories should be enabled based + on the specified string value, which must be in the following general + format: + + [prefix1][name1][separator1] ... [prefixN][nameN][separatorN] + + The [prefix] portion of each name may be ommited. When present, it + must be one of the following characters: '+' (plus), '-' (minus), + or '=' (equals). The [name] is case insensitive and must be one of + names defined in the enumeration. The + [separator] portions are required and must be one of the following + characters: '\t' (horizontal tab), '\n' (line feed), ' ' (space), + or ',' (comma). + + Initially, any [name] will be added to the mask of enabled trace + categories; however, when [prefix] is present, it may alter this + behavior, e.g. the '-' character is used to remove an enabled trace + category and the '=' character is used to reset the mask of enabled + trace categories. Finally, the '+' character is used to restore the + initial behavior of adding to the mask of enabled trace categories. + + + The string containing one or more trace categories to enable. In + general, this value will come from a configuration file -OR- the + process environment. + + + Mask of enable trace categories -OR- null to indicate an error was + encountered during processing. + + + + + Determines if the enabled trace categories have already been set. + + + Non-zero if the enabled trace categories have already been set; + otherwise, zero. + + + + + Changes the set of trace categories that are enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace categories to enable. Any trace categories not present + in this mask will be disabled. + + + + + Attempts to emit a message to the tracing subsystem via the + method. + + + The message to emit. + + + The category to which the message belongs. + + + + + Attempts to convert an object value to a string suitable for display + to humans. + + + The object value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Attempts to convert an array value to a string suitable for display + to humans. + + + The array value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Build list-formatted string from a list of string elements. + + + The list of strings to process. + + + Non-zero if this method should avoid returning a null value + when the input list is null. + + + Either the list-formatted string -OR- null if it cannot be + determined. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + Attempt to convert the specified to a + suitable for use with this library. + + + The type to convert. + + + Either a specific -OR- the default + (i.e. ) + if a more specific is not matched. + + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + If a connection cannot be opened using the connection pool, throw + an exception instead of default behavior of falling back to using + a non-pooled connection. + + + + + Be more aggressive about disposing of unused native resources, + e.g. connections, transactions, commands, data readers, blobs, + etc. + + WARNING: This flag is enabled by default and should not be + disabled unless there is a very good reason, e.g. + an application that relies on the legacy disposal + behavior. + + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This enumeration is used with the + callback in order + to determine which of the connection string properties is + to be set with its returned string value. + + + + + No password mode, skip setting the password. + + + + + Use the "Password" connection string property. + + + + + Use the "HexPassword" connection string property. + + + + + Use the "TextPassword" connection string property. + + + + + Use the "TextHexPassword" connection string property. + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This represents a method to be called to obtain the encryption + password for the associated connection, which is passed in the + parameter. + + + The connection being opened. + + + The called method may modify this parameter in order to change + which connection string property is used to setup the password. + + + The password string to use when opening the connection. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + Returns the number of instances of this class that have been created + within this application domain. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + IncludeDefaultFlags + + True - Combine the specified connection flags, if any, with the value of the + property. +
+ False - Do not combine the specified connection flags, if any, with the value of the + property. +
+ N + True +
+ + NoDefaultFlags + + True - Do not combine the pre-existing connection flags, if any, with the value of the + property. +
+ False - Combine the pre-existing connection flags, if any, with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + StepRetries + + The maximum number of retries when stepping a SQL statement. This + normally only applies to stepping errors resulting from the database + being locked or its schema being changed. + + N + 40 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + Used to hold the number of times the event + should have been fired. + + + + + Used to hold the number of times the event + should have been skipped. + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Attempts to determine if events can be + raised. + + + The connection associated with this event, if any. + + + Non-zero if disposal status of the specified connection should + not be considered. + + + Non-zero if events are currently enabled + for the specified connection; otherwise, zero. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Gets or sets the callback method that can be used to provide a + connection string password when one is NOT already specified in + the connection string itself. + + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the + legacy CryptoAPI-based (RC4) codec that was previously included with + System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the list of unified define constants + (i.e. compile-time options) used to compile the core managed and + interop assemblies, delimited with spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Gets or sets an arbitrary data ("tag") associated with this connection instance. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + What type of directory are we searching for? + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + The is preparing to return + a row of data. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + An exception was caught during use of mapped memory. + In general, this applies only to the WAL journal mode. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function + might call sqlite3_result_subtype() to cause a sub-type to be + associated with its result. Every function that invokes + sqlite3_result_subtype() should have this property. If it does not, + then the call to sqlite3_result_subtype() might become a no-op if the + function is used as term in an expression index. On the other hand, + SQL functions that never invoke sqlite3_result_subtype() should avoid + setting this property, as the purpose of this property is to disable + certain optimizations that are incompatible with subtypes. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + Attempts to build a name suitable for use with an index-only + (unnamed) parameter. + + The index for the parameter. + + Non-zero if the returned name should be a placeholder, i.e. + an unnamed parameter that does not use a syntax supported by + the SQLite core library. + + The built name -OR- null if it cannot be built. + + + + Returns non-zero if the specified parameter name appears to + refer to an unnamed parameter placeholder. + + + The parameter name to check. + + + The parameter index or negative one if it cannot be determined. + + + Non-zero if the specified parameter name represents an unnamed + placeholder parameter. + + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Gets or sets the case-insensitivity setting for use when mappping + parameters. This should only be set immediately after creating a + instance. + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + The reference count for this statement, which may be shared between + a and a . + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + This method attempts to map the specified named placeholder + parameter, i.e. an unnamed parameter that has been given an + placeholder name. + + The placeholder parameter name to map. + The parameter to assign it. + Non-zero to ignore case. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + Non-zero to ignore case. + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This class encapsulates some tracking data that is used for debugging + and testing purposes. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This dictionary stores the mappings between processor architecture + names and runtime names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + Non-zero if this method should only consider a base directory that + has been manually overridden by the application. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Given the processor architecture, returns the name of the runtime. + + + The processor architecture to be translated to a runtime name. + + + + Non-zero if the component separators within the runtime name should + be replaced with directory separators. + + The runtime name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + Non-zero to skip loading of the native SQLite library, i.e. only + set the native module file name. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ABORT,ACTION,ADD,AFTER,ALL,ALTER,ALWAYS,ANALYZE,AND,AS,ASC,ATTACH,AUTOINCREMENT,BEFORE,BEGIN,BETWEEN,BY,CASCADE,CASE,CAST,CHECK,COLLATE,COLUMN,COMMIT,CONFLICT,CONSTRAINT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,DATABASE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DETACH,DISTINCT,DO,DROP,EACH,ELSE,END,ESCAPE,EXCEPT,EXCLUDE,EXCLUSIVE,EXISTS,EXPLAIN,FAIL,FILTER,FIRST,FOLLOWING,FOR,FOREIGN,FROM,FULL,GENERATED,GLOB,GROUP,GROUPS,HAVING,IF,IGNORE,IMMEDIATE,IN,INDEX,INDEXED,INITIALLY,INNER,INSERT,INSTEAD,INTERSECT,INTO,IS,ISNULL,JOIN,KEY,LAST,LEFT,LIKE,LIMIT,MATCH,MATERIALIZED,NATURAL,NO,NOT,NOTHING,NOTNULL,NULL,NULLS,OF,OFFSET,ON,OR,ORDER,OTHERS,OUTER,OVER,PARTITION,PLAN,PRAGMA,PRECEDING,PRIMARY,QUERY,RAISE,RANGE,RECURSIVE,REFERENCES,REGEXP,REINDEX,RELEASE,RENAME,REPLACE,RESTRICT,RETURNING,RIGHT,ROLLBACK,ROW,ROWS,SAVEPOINT,SELECT,SET,TABLE,TEMP,TEMPORARY,THEN,TIES,TO,TRANSACTION,TRIGGER,UNBOUNDED,UNION,UNIQUE,UPDATE,USING,VACUUM,VALUES,VIEW,VIRTUAL,WHEN,WHERE,WINDOW,WITH,WITHOUT. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + The operation will be attempted later, possibly via a secondary + thread, event loop, etc. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false → return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array → + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + This object instance is used to synchronize access to the other + static fields of this class. + + + + + The total number of outstanding memory bytes allocated by this + class using the SQLite core library. + + + + + The maximum number of outstanding memory bytes ever allocated by + this class using the SQLite core library. + + + + + Attempts to determine the size of the specified memory block. If + the method can be used, the returned value + may be larger than . A message may + be sent to the logging subsystem if an error is encountered. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The size of the specified memory block -OR- zero if the 32-bit + signed value reported from the native API was less than zero. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + increased by the total size of the memory block pointed to by + . If the new total number exceeds + the previously seen maximum, the maximum will be reset. + + + A native pointer to newly allocated memory. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + decreased by the total size of the memory block pointed to by + . + + + A native pointer to allocated memory that is going to be freed. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll new file mode 100644 index 0000000..b15ee32 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll.altconfig b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll.altconfig new file mode 100644 index 0000000..ad8b7c5 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.dll.altconfig @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.xml b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.xml new file mode 100644 index 0000000..b465fbe --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net40/System.Data.SQLite.xml @@ -0,0 +1,24166 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + These are the possible operations used to mutate a flags enumeration + value. + + + + + These are the trace categories used by various components within this + library. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it + is set by the method on its first call. + Later, it is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + These are the currently enabled categories of trace messages. If a + trace message belongs to one of these categories, it will be emitted; + otherwise, it will be silently dropped. + + + + + This boolean flag will be non-zero when the enabled trace categories + have been setup. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines if the specified trace category is enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace category to check. + + + Non-zero if the specified trace category is enabled. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + Non-zero if the caller detected "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + + method. On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Attempts to determine which trace categories should be enabled based + on the specified string value, which must be in the following general + format: + + [prefix1][name1][separator1] ... [prefixN][nameN][separatorN] + + The [prefix] portion of each name may be ommited. When present, it + must be one of the following characters: '+' (plus), '-' (minus), + or '=' (equals). The [name] is case insensitive and must be one of + names defined in the enumeration. The + [separator] portions are required and must be one of the following + characters: '\t' (horizontal tab), '\n' (line feed), ' ' (space), + or ',' (comma). + + Initially, any [name] will be added to the mask of enabled trace + categories; however, when [prefix] is present, it may alter this + behavior, e.g. the '-' character is used to remove an enabled trace + category and the '=' character is used to reset the mask of enabled + trace categories. Finally, the '+' character is used to restore the + initial behavior of adding to the mask of enabled trace categories. + + + The string containing one or more trace categories to enable. In + general, this value will come from a configuration file -OR- the + process environment. + + + Mask of enable trace categories -OR- null to indicate an error was + encountered during processing. + + + + + Determines if the enabled trace categories have already been set. + + + Non-zero if the enabled trace categories have already been set; + otherwise, zero. + + + + + Changes the set of trace categories that are enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace categories to enable. Any trace categories not present + in this mask will be disabled. + + + + + Attempts to emit a message to the tracing subsystem via the + method. + + + The message to emit. + + + The category to which the message belongs. + + + + + Attempts to convert an object value to a string suitable for display + to humans. + + + The object value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Attempts to convert an array value to a string suitable for display + to humans. + + + The array value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Build list-formatted string from a list of string elements. + + + The list of strings to process. + + + Non-zero if this method should avoid returning a null value + when the input list is null. + + + Either the list-formatted string -OR- null if it cannot be + determined. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + Attempt to convert the specified to a + suitable for use with this library. + + + The type to convert. + + + Either a specific -OR- the default + (i.e. ) + if a more specific is not matched. + + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + If a connection cannot be opened using the connection pool, throw + an exception instead of default behavior of falling back to using + a non-pooled connection. + + + + + Be more aggressive about disposing of unused native resources, + e.g. connections, transactions, commands, data readers, blobs, + etc. + + WARNING: This flag is enabled by default and should not be + disabled unless there is a very good reason, e.g. + an application that relies on the legacy disposal + behavior. + + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This enumeration is used with the + callback in order + to determine which of the connection string properties is + to be set with its returned string value. + + + + + No password mode, skip setting the password. + + + + + Use the "Password" connection string property. + + + + + Use the "HexPassword" connection string property. + + + + + Use the "TextPassword" connection string property. + + + + + Use the "TextHexPassword" connection string property. + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This represents a method to be called to obtain the encryption + password for the associated connection, which is passed in the + parameter. + + + The connection being opened. + + + The called method may modify this parameter in order to change + which connection string property is used to setup the password. + + + The password string to use when opening the connection. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + Returns the number of instances of this class that have been created + within this application domain. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + IncludeDefaultFlags + + True - Combine the specified connection flags, if any, with the value of the + property. +
+ False - Do not combine the specified connection flags, if any, with the value of the + property. +
+ N + True +
+ + NoDefaultFlags + + True - Do not combine the pre-existing connection flags, if any, with the value of the + property. +
+ False - Combine the pre-existing connection flags, if any, with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + StepRetries + + The maximum number of retries when stepping a SQL statement. This + normally only applies to stepping errors resulting from the database + being locked or its schema being changed. + + N + 40 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + Used to hold the number of times the event + should have been fired. + + + + + Used to hold the number of times the event + should have been skipped. + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Attempts to determine if events can be + raised. + + + The connection associated with this event, if any. + + + Non-zero if disposal status of the specified connection should + not be considered. + + + Non-zero if events are currently enabled + for the specified connection; otherwise, zero. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Gets or sets the callback method that can be used to provide a + connection string password when one is NOT already specified in + the connection string itself. + + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the + legacy CryptoAPI-based (RC4) codec that was previously included with + System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the list of unified define constants + (i.e. compile-time options) used to compile the core managed and + interop assemblies, delimited with spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Gets or sets an arbitrary data ("tag") associated with this connection instance. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + What type of directory are we searching for? + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + The is preparing to return + a row of data. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + An exception was caught during use of mapped memory. + In general, this applies only to the WAL journal mode. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function + might call sqlite3_result_subtype() to cause a sub-type to be + associated with its result. Every function that invokes + sqlite3_result_subtype() should have this property. If it does not, + then the call to sqlite3_result_subtype() might become a no-op if the + function is used as term in an expression index. On the other hand, + SQL functions that never invoke sqlite3_result_subtype() should avoid + setting this property, as the purpose of this property is to disable + certain optimizations that are incompatible with subtypes. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + Attempts to build a name suitable for use with an index-only + (unnamed) parameter. + + The index for the parameter. + + Non-zero if the returned name should be a placeholder, i.e. + an unnamed parameter that does not use a syntax supported by + the SQLite core library. + + The built name -OR- null if it cannot be built. + + + + Returns non-zero if the specified parameter name appears to + refer to an unnamed parameter placeholder. + + + The parameter name to check. + + + The parameter index or negative one if it cannot be determined. + + + Non-zero if the specified parameter name represents an unnamed + placeholder parameter. + + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Gets or sets the case-insensitivity setting for use when mappping + parameters. This should only be set immediately after creating a + instance. + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + The reference count for this statement, which may be shared between + a and a . + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + This method attempts to map the specified named placeholder + parameter, i.e. an unnamed parameter that has been given an + placeholder name. + + The placeholder parameter name to map. + The parameter to assign it. + Non-zero to ignore case. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + Non-zero to ignore case. + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This class encapsulates some tracking data that is used for debugging + and testing purposes. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This dictionary stores the mappings between processor architecture + names and runtime names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + Non-zero if this method should only consider a base directory that + has been manually overridden by the application. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Given the processor architecture, returns the name of the runtime. + + + The processor architecture to be translated to a runtime name. + + + + Non-zero if the component separators within the runtime name should + be replaced with directory separators. + + The runtime name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + Non-zero to skip loading of the native SQLite library, i.e. only + set the native module file name. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ABORT,ACTION,ADD,AFTER,ALL,ALTER,ALWAYS,ANALYZE,AND,AS,ASC,ATTACH,AUTOINCREMENT,BEFORE,BEGIN,BETWEEN,BY,CASCADE,CASE,CAST,CHECK,COLLATE,COLUMN,COMMIT,CONFLICT,CONSTRAINT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,DATABASE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DETACH,DISTINCT,DO,DROP,EACH,ELSE,END,ESCAPE,EXCEPT,EXCLUDE,EXCLUSIVE,EXISTS,EXPLAIN,FAIL,FILTER,FIRST,FOLLOWING,FOR,FOREIGN,FROM,FULL,GENERATED,GLOB,GROUP,GROUPS,HAVING,IF,IGNORE,IMMEDIATE,IN,INDEX,INDEXED,INITIALLY,INNER,INSERT,INSTEAD,INTERSECT,INTO,IS,ISNULL,JOIN,KEY,LAST,LEFT,LIKE,LIMIT,MATCH,MATERIALIZED,NATURAL,NO,NOT,NOTHING,NOTNULL,NULL,NULLS,OF,OFFSET,ON,OR,ORDER,OTHERS,OUTER,OVER,PARTITION,PLAN,PRAGMA,PRECEDING,PRIMARY,QUERY,RAISE,RANGE,RECURSIVE,REFERENCES,REGEXP,REINDEX,RELEASE,RENAME,REPLACE,RESTRICT,RETURNING,RIGHT,ROLLBACK,ROW,ROWS,SAVEPOINT,SELECT,SET,TABLE,TEMP,TEMPORARY,THEN,TIES,TO,TRANSACTION,TRIGGER,UNBOUNDED,UNION,UNIQUE,UPDATE,USING,VACUUM,VALUES,VIEW,VIRTUAL,WHEN,WHERE,WINDOW,WITH,WITHOUT. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + The operation will be attempted later, possibly via a secondary + thread, event loop, etc. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false → return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array → + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + This object instance is used to synchronize access to the other + static fields of this class. + + + + + The total number of outstanding memory bytes allocated by this + class using the SQLite core library. + + + + + The maximum number of outstanding memory bytes ever allocated by + this class using the SQLite core library. + + + + + Attempts to determine the size of the specified memory block. If + the method can be used, the returned value + may be larger than . A message may + be sent to the logging subsystem if an error is encountered. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The size of the specified memory block -OR- zero if the 32-bit + signed value reported from the native API was less than zero. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + increased by the total size of the memory block pointed to by + . If the new total number exceeds + the previously seen maximum, the maximum will be reset. + + + A native pointer to newly allocated memory. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + decreased by the total size of the memory block pointed to by + . + + + A native pointer to allocated memory that is going to be freed. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll new file mode 100644 index 0000000..923dc00 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll.altconfig b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll.altconfig new file mode 100644 index 0000000..ad8b7c5 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.dll.altconfig @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.xml b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.xml new file mode 100644 index 0000000..b465fbe --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net45/System.Data.SQLite.xml @@ -0,0 +1,24166 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + These are the possible operations used to mutate a flags enumeration + value. + + + + + These are the trace categories used by various components within this + library. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it + is set by the method on its first call. + Later, it is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + These are the currently enabled categories of trace messages. If a + trace message belongs to one of these categories, it will be emitted; + otherwise, it will be silently dropped. + + + + + This boolean flag will be non-zero when the enabled trace categories + have been setup. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines if the specified trace category is enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace category to check. + + + Non-zero if the specified trace category is enabled. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + Non-zero if the caller detected "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + + method. On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Attempts to determine which trace categories should be enabled based + on the specified string value, which must be in the following general + format: + + [prefix1][name1][separator1] ... [prefixN][nameN][separatorN] + + The [prefix] portion of each name may be ommited. When present, it + must be one of the following characters: '+' (plus), '-' (minus), + or '=' (equals). The [name] is case insensitive and must be one of + names defined in the enumeration. The + [separator] portions are required and must be one of the following + characters: '\t' (horizontal tab), '\n' (line feed), ' ' (space), + or ',' (comma). + + Initially, any [name] will be added to the mask of enabled trace + categories; however, when [prefix] is present, it may alter this + behavior, e.g. the '-' character is used to remove an enabled trace + category and the '=' character is used to reset the mask of enabled + trace categories. Finally, the '+' character is used to restore the + initial behavior of adding to the mask of enabled trace categories. + + + The string containing one or more trace categories to enable. In + general, this value will come from a configuration file -OR- the + process environment. + + + Mask of enable trace categories -OR- null to indicate an error was + encountered during processing. + + + + + Determines if the enabled trace categories have already been set. + + + Non-zero if the enabled trace categories have already been set; + otherwise, zero. + + + + + Changes the set of trace categories that are enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace categories to enable. Any trace categories not present + in this mask will be disabled. + + + + + Attempts to emit a message to the tracing subsystem via the + method. + + + The message to emit. + + + The category to which the message belongs. + + + + + Attempts to convert an object value to a string suitable for display + to humans. + + + The object value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Attempts to convert an array value to a string suitable for display + to humans. + + + The array value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Build list-formatted string from a list of string elements. + + + The list of strings to process. + + + Non-zero if this method should avoid returning a null value + when the input list is null. + + + Either the list-formatted string -OR- null if it cannot be + determined. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + Attempt to convert the specified to a + suitable for use with this library. + + + The type to convert. + + + Either a specific -OR- the default + (i.e. ) + if a more specific is not matched. + + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + If a connection cannot be opened using the connection pool, throw + an exception instead of default behavior of falling back to using + a non-pooled connection. + + + + + Be more aggressive about disposing of unused native resources, + e.g. connections, transactions, commands, data readers, blobs, + etc. + + WARNING: This flag is enabled by default and should not be + disabled unless there is a very good reason, e.g. + an application that relies on the legacy disposal + behavior. + + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This enumeration is used with the + callback in order + to determine which of the connection string properties is + to be set with its returned string value. + + + + + No password mode, skip setting the password. + + + + + Use the "Password" connection string property. + + + + + Use the "HexPassword" connection string property. + + + + + Use the "TextPassword" connection string property. + + + + + Use the "TextHexPassword" connection string property. + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This represents a method to be called to obtain the encryption + password for the associated connection, which is passed in the + parameter. + + + The connection being opened. + + + The called method may modify this parameter in order to change + which connection string property is used to setup the password. + + + The password string to use when opening the connection. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + Returns the number of instances of this class that have been created + within this application domain. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + IncludeDefaultFlags + + True - Combine the specified connection flags, if any, with the value of the + property. +
+ False - Do not combine the specified connection flags, if any, with the value of the + property. +
+ N + True +
+ + NoDefaultFlags + + True - Do not combine the pre-existing connection flags, if any, with the value of the + property. +
+ False - Combine the pre-existing connection flags, if any, with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + StepRetries + + The maximum number of retries when stepping a SQL statement. This + normally only applies to stepping errors resulting from the database + being locked or its schema being changed. + + N + 40 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + Used to hold the number of times the event + should have been fired. + + + + + Used to hold the number of times the event + should have been skipped. + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Attempts to determine if events can be + raised. + + + The connection associated with this event, if any. + + + Non-zero if disposal status of the specified connection should + not be considered. + + + Non-zero if events are currently enabled + for the specified connection; otherwise, zero. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Gets or sets the callback method that can be used to provide a + connection string password when one is NOT already specified in + the connection string itself. + + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the + legacy CryptoAPI-based (RC4) codec that was previously included with + System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the list of unified define constants + (i.e. compile-time options) used to compile the core managed and + interop assemblies, delimited with spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Gets or sets an arbitrary data ("tag") associated with this connection instance. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + What type of directory are we searching for? + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + The is preparing to return + a row of data. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + An exception was caught during use of mapped memory. + In general, this applies only to the WAL journal mode. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function + might call sqlite3_result_subtype() to cause a sub-type to be + associated with its result. Every function that invokes + sqlite3_result_subtype() should have this property. If it does not, + then the call to sqlite3_result_subtype() might become a no-op if the + function is used as term in an expression index. On the other hand, + SQL functions that never invoke sqlite3_result_subtype() should avoid + setting this property, as the purpose of this property is to disable + certain optimizations that are incompatible with subtypes. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + Attempts to build a name suitable for use with an index-only + (unnamed) parameter. + + The index for the parameter. + + Non-zero if the returned name should be a placeholder, i.e. + an unnamed parameter that does not use a syntax supported by + the SQLite core library. + + The built name -OR- null if it cannot be built. + + + + Returns non-zero if the specified parameter name appears to + refer to an unnamed parameter placeholder. + + + The parameter name to check. + + + The parameter index or negative one if it cannot be determined. + + + Non-zero if the specified parameter name represents an unnamed + placeholder parameter. + + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Gets or sets the case-insensitivity setting for use when mappping + parameters. This should only be set immediately after creating a + instance. + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + The reference count for this statement, which may be shared between + a and a . + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + This method attempts to map the specified named placeholder + parameter, i.e. an unnamed parameter that has been given an + placeholder name. + + The placeholder parameter name to map. + The parameter to assign it. + Non-zero to ignore case. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + Non-zero to ignore case. + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This class encapsulates some tracking data that is used for debugging + and testing purposes. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This dictionary stores the mappings between processor architecture + names and runtime names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + Non-zero if this method should only consider a base directory that + has been manually overridden by the application. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Given the processor architecture, returns the name of the runtime. + + + The processor architecture to be translated to a runtime name. + + + + Non-zero if the component separators within the runtime name should + be replaced with directory separators. + + The runtime name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + Non-zero to skip loading of the native SQLite library, i.e. only + set the native module file name. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ABORT,ACTION,ADD,AFTER,ALL,ALTER,ALWAYS,ANALYZE,AND,AS,ASC,ATTACH,AUTOINCREMENT,BEFORE,BEGIN,BETWEEN,BY,CASCADE,CASE,CAST,CHECK,COLLATE,COLUMN,COMMIT,CONFLICT,CONSTRAINT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,DATABASE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DETACH,DISTINCT,DO,DROP,EACH,ELSE,END,ESCAPE,EXCEPT,EXCLUDE,EXCLUSIVE,EXISTS,EXPLAIN,FAIL,FILTER,FIRST,FOLLOWING,FOR,FOREIGN,FROM,FULL,GENERATED,GLOB,GROUP,GROUPS,HAVING,IF,IGNORE,IMMEDIATE,IN,INDEX,INDEXED,INITIALLY,INNER,INSERT,INSTEAD,INTERSECT,INTO,IS,ISNULL,JOIN,KEY,LAST,LEFT,LIKE,LIMIT,MATCH,MATERIALIZED,NATURAL,NO,NOT,NOTHING,NOTNULL,NULL,NULLS,OF,OFFSET,ON,OR,ORDER,OTHERS,OUTER,OVER,PARTITION,PLAN,PRAGMA,PRECEDING,PRIMARY,QUERY,RAISE,RANGE,RECURSIVE,REFERENCES,REGEXP,REINDEX,RELEASE,RENAME,REPLACE,RESTRICT,RETURNING,RIGHT,ROLLBACK,ROW,ROWS,SAVEPOINT,SELECT,SET,TABLE,TEMP,TEMPORARY,THEN,TIES,TO,TRANSACTION,TRIGGER,UNBOUNDED,UNION,UNIQUE,UPDATE,USING,VACUUM,VALUES,VIEW,VIRTUAL,WHEN,WHERE,WINDOW,WITH,WITHOUT. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + The operation will be attempted later, possibly via a secondary + thread, event loop, etc. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false → return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array → + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + This object instance is used to synchronize access to the other + static fields of this class. + + + + + The total number of outstanding memory bytes allocated by this + class using the SQLite core library. + + + + + The maximum number of outstanding memory bytes ever allocated by + this class using the SQLite core library. + + + + + Attempts to determine the size of the specified memory block. If + the method can be used, the returned value + may be larger than . A message may + be sent to the logging subsystem if an error is encountered. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The size of the specified memory block -OR- zero if the 32-bit + signed value reported from the native API was less than zero. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + increased by the total size of the memory block pointed to by + . If the new total number exceeds + the previously seen maximum, the maximum will be reset. + + + A native pointer to newly allocated memory. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + decreased by the total size of the memory block pointed to by + . + + + A native pointer to allocated memory that is going to be freed. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll new file mode 100644 index 0000000..9efdb64 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll.altconfig b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll.altconfig new file mode 100644 index 0000000..ad8b7c5 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.dll.altconfig @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.xml b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.xml new file mode 100644 index 0000000..b465fbe --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net451/System.Data.SQLite.xml @@ -0,0 +1,24166 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + These are the possible operations used to mutate a flags enumeration + value. + + + + + These are the trace categories used by various components within this + library. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it + is set by the method on its first call. + Later, it is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + These are the currently enabled categories of trace messages. If a + trace message belongs to one of these categories, it will be emitted; + otherwise, it will be silently dropped. + + + + + This boolean flag will be non-zero when the enabled trace categories + have been setup. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines if the specified trace category is enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace category to check. + + + Non-zero if the specified trace category is enabled. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + Non-zero if the caller detected "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + + method. On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Attempts to determine which trace categories should be enabled based + on the specified string value, which must be in the following general + format: + + [prefix1][name1][separator1] ... [prefixN][nameN][separatorN] + + The [prefix] portion of each name may be ommited. When present, it + must be one of the following characters: '+' (plus), '-' (minus), + or '=' (equals). The [name] is case insensitive and must be one of + names defined in the enumeration. The + [separator] portions are required and must be one of the following + characters: '\t' (horizontal tab), '\n' (line feed), ' ' (space), + or ',' (comma). + + Initially, any [name] will be added to the mask of enabled trace + categories; however, when [prefix] is present, it may alter this + behavior, e.g. the '-' character is used to remove an enabled trace + category and the '=' character is used to reset the mask of enabled + trace categories. Finally, the '+' character is used to restore the + initial behavior of adding to the mask of enabled trace categories. + + + The string containing one or more trace categories to enable. In + general, this value will come from a configuration file -OR- the + process environment. + + + Mask of enable trace categories -OR- null to indicate an error was + encountered during processing. + + + + + Determines if the enabled trace categories have already been set. + + + Non-zero if the enabled trace categories have already been set; + otherwise, zero. + + + + + Changes the set of trace categories that are enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace categories to enable. Any trace categories not present + in this mask will be disabled. + + + + + Attempts to emit a message to the tracing subsystem via the + method. + + + The message to emit. + + + The category to which the message belongs. + + + + + Attempts to convert an object value to a string suitable for display + to humans. + + + The object value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Attempts to convert an array value to a string suitable for display + to humans. + + + The array value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Build list-formatted string from a list of string elements. + + + The list of strings to process. + + + Non-zero if this method should avoid returning a null value + when the input list is null. + + + Either the list-formatted string -OR- null if it cannot be + determined. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + Attempt to convert the specified to a + suitable for use with this library. + + + The type to convert. + + + Either a specific -OR- the default + (i.e. ) + if a more specific is not matched. + + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + If a connection cannot be opened using the connection pool, throw + an exception instead of default behavior of falling back to using + a non-pooled connection. + + + + + Be more aggressive about disposing of unused native resources, + e.g. connections, transactions, commands, data readers, blobs, + etc. + + WARNING: This flag is enabled by default and should not be + disabled unless there is a very good reason, e.g. + an application that relies on the legacy disposal + behavior. + + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + This enumeration is used with the + callback in order + to determine which of the connection string properties is + to be set with its returned string value. + + + + + No password mode, skip setting the password. + + + + + Use the "Password" connection string property. + + + + + Use the "HexPassword" connection string property. + + + + + Use the "TextPassword" connection string property. + + + + + Use the "TextHexPassword" connection string property. + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This represents a method to be called to obtain the encryption + password for the associated connection, which is passed in the + parameter. + + + The connection being opened. + + + The called method may modify this parameter in order to change + which connection string property is used to setup the password. + + + The password string to use when opening the connection. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + Returns the number of instances of this class that have been created + within this application domain. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + IncludeDefaultFlags + + True - Combine the specified connection flags, if any, with the value of the + property. +
+ False - Do not combine the specified connection flags, if any, with the value of the + property. +
+ N + True +
+ + NoDefaultFlags + + True - Do not combine the pre-existing connection flags, if any, with the value of the + property. +
+ False - Combine the pre-existing connection flags, if any, with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + StepRetries + + The maximum number of retries when stepping a SQL statement. This + normally only applies to stepping errors resulting from the database + being locked or its schema being changed. + + N + 40 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + Used to hold the number of times the event + should have been fired. + + + + + Used to hold the number of times the event + should have been skipped. + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Attempts to determine if events can be + raised. + + + The connection associated with this event, if any. + + + Non-zero if disposal status of the specified connection should + not be considered. + + + Non-zero if events are currently enabled + for the specified connection; otherwise, zero. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Gets or sets the callback method that can be used to provide a + connection string password when one is NOT already specified in + the connection string itself. + + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the + legacy CryptoAPI-based (RC4) codec that was previously included with + System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + Static variable to store the connection event handlers to call. + + + + + This event is raised whenever the database is opened or closed. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns a string containing the list of unified define constants + (i.e. compile-time options) used to compile the core managed and + interop assemblies, delimited with spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Gets or sets an arbitrary data ("tag") associated with this connection instance. + + + + + Returns the state of the connection. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + What type of directory are we searching for? + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + The is preparing to return + a row of data. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Row updating event handler + + + + + Row updated event handler + + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + An exception was caught during use of mapped memory. + In general, this applies only to the WAL journal mode. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function + might call sqlite3_result_subtype() to cause a sub-type to be + associated with its result. Every function that invokes + sqlite3_result_subtype() should have this property. If it does not, + then the call to sqlite3_result_subtype() might become a no-op if the + function is used as term in an expression index. On the other hand, + SQL functions that never invoke sqlite3_result_subtype() should avoid + setting this property, as the purpose of this property is to disable + certain optimizations that are incompatible with subtypes. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + How many additional columns of keyinfo we're holding + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + Member variable to store the application log handler to call. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + Attempts to build a name suitable for use with an index-only + (unnamed) parameter. + + The index for the parameter. + + Non-zero if the returned name should be a placeholder, i.e. + an unnamed parameter that does not use a syntax supported by + the SQLite core library. + + The built name -OR- null if it cannot be built. + + + + Returns non-zero if the specified parameter name appears to + refer to an unnamed parameter placeholder. + + + The parameter name to check. + + + The parameter index or negative one if it cannot be determined. + + + Non-zero if the specified parameter name represents an unnamed + placeholder parameter. + + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Gets or sets the case-insensitivity setting for use when mappping + parameters. This should only be set immediately after creating a + instance. + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + The reference count for this statement, which may be shared between + a and a . + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + This method attempts to map the specified named placeholder + parameter, i.e. an unnamed parameter that has been given an + placeholder name. + + The placeholder parameter name to map. + The parameter to assign it. + Non-zero to ignore case. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + Non-zero to ignore case. + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + This class encapsulates some tracking data that is used for debugging + and testing purposes. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This dictionary stores the mappings between processor architecture + names and runtime names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + Non-zero if this method should only consider a base directory that + has been manually overridden by the application. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Given the processor architecture, returns the name of the runtime. + + + The processor architecture to be translated to a runtime name. + + + + Non-zero if the component separators within the runtime name should + be replaced with directory separators. + + The runtime name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + Non-zero to skip loading of the native SQLite library, i.e. only + set the native module file name. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ABORT,ACTION,ADD,AFTER,ALL,ALTER,ALWAYS,ANALYZE,AND,AS,ASC,ATTACH,AUTOINCREMENT,BEFORE,BEGIN,BETWEEN,BY,CASCADE,CASE,CAST,CHECK,COLLATE,COLUMN,COMMIT,CONFLICT,CONSTRAINT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,DATABASE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DETACH,DISTINCT,DO,DROP,EACH,ELSE,END,ESCAPE,EXCEPT,EXCLUDE,EXCLUSIVE,EXISTS,EXPLAIN,FAIL,FILTER,FIRST,FOLLOWING,FOR,FOREIGN,FROM,FULL,GENERATED,GLOB,GROUP,GROUPS,HAVING,IF,IGNORE,IMMEDIATE,IN,INDEX,INDEXED,INITIALLY,INNER,INSERT,INSTEAD,INTERSECT,INTO,IS,ISNULL,JOIN,KEY,LAST,LEFT,LIKE,LIMIT,MATCH,MATERIALIZED,NATURAL,NO,NOT,NOTHING,NOTNULL,NULL,NULLS,OF,OFFSET,ON,OR,ORDER,OTHERS,OUTER,OVER,PARTITION,PLAN,PRAGMA,PRECEDING,PRIMARY,QUERY,RAISE,RANGE,RECURSIVE,REFERENCES,REGEXP,REINDEX,RELEASE,RENAME,REPLACE,RESTRICT,RETURNING,RIGHT,ROLLBACK,ROW,ROWS,SAVEPOINT,SELECT,SET,TABLE,TEMP,TEMPORARY,THEN,TIES,TO,TRANSACTION,TRIGGER,UNBOUNDED,UNION,UNIQUE,UPDATE,USING,VACUUM,VALUES,VIEW,VIRTUAL,WHEN,WHERE,WINDOW,WITH,WITHOUT. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + The operation will be attempted later, possibly via a secondary + thread, event loop, etc. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false → return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array → + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + This object instance is used to synchronize access to the other + static fields of this class. + + + + + The total number of outstanding memory bytes allocated by this + class using the SQLite core library. + + + + + The maximum number of outstanding memory bytes ever allocated by + this class using the SQLite core library. + + + + + Attempts to determine the size of the specified memory block. If + the method can be used, the returned value + may be larger than . A message may + be sent to the logging subsystem if an error is encountered. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The size of the specified memory block -OR- zero if the 32-bit + signed value reported from the native API was less than zero. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + increased by the total size of the memory block pointed to by + . If the new total number exceeds + the previously seen maximum, the maximum will be reset. + + + A native pointer to newly allocated memory. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + decreased by the total size of the memory block pointed to by + . + + + A native pointer to allocated memory that is going to be freed. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + +
+
diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll new file mode 100644 index 0000000..9211c83 Binary files /dev/null and b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll differ diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll.altconfig b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll.altconfig new file mode 100644 index 0000000..ad8b7c5 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.dll.altconfig @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.xml b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.xml new file mode 100644 index 0000000..b0eea65 --- /dev/null +++ b/packages/Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0/lib/net46/System.Data.SQLite.xml @@ -0,0 +1,24166 @@ + + + + System.Data.SQLite + + + + + Defines a source code identifier custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code identifier value. + + + The source code identifier value to use. + + + + + Gets the source code identifier value. + + + + + Defines a source code time-stamp custom attribute for an assembly + manifest. + + + + + Constructs an instance of this attribute class using the specified + source code time-stamp value. + + + The source code time-stamp value to use. + + + + + Gets the source code time-stamp value. + + + + + These are the possible operations used to mutate a flags enumeration + value. + + + + + These are the trace categories used by various components within this + library. + + + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + This static class provides some methods that are shared between the + native library pre-loader and other classes. + + + + + This lock is used to protect the static and + fields. + + + + + This type is only present when running on Mono. + + + + + This type is only present when running on .NET Core. + + + + + Keeps track of whether we are running on Mono. Initially null, it + is set by the method on its first call. + Later, it is returned verbatim by the method. + + + + + Keeps track of whether we are running on .NET Core. Initially null, + it is set by the method on its first + call. Later, it is returned verbatim by the + method. + + + + + Keeps track of whether we successfully invoked the + method. Initially null, it is set by + the method on its first call. + + + + + These are the currently enabled categories of trace messages. If a + trace message belongs to one of these categories, it will be emitted; + otherwise, it will be silently dropped. + + + + + This boolean flag will be non-zero when the enabled trace categories + have been setup. + + + + + Determines the ID of the current process. Only used for debugging. + + + The ID of the current process -OR- zero if it cannot be determined. + + + + + Determines whether or not this assembly is running on Mono. + + + Non-zero if this assembly is running on Mono. + + + + + Determines if the specified trace category is enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace category to check. + + + Non-zero if the specified trace category is enabled. + + + + + Resets the cached value for the "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is + present (e.g. via the environment), give the interactive user an + opportunity to attach a debugger to the current process; otherwise, + do nothing. + + + Non-zero if the caller detected "PreLoadSQLite_BreakIntoDebugger" + configuration setting. + + + + + Determines the ID of the current thread. Only used for debugging. + + + The ID of the current thread -OR- zero if it cannot be determined. + + + + + Determines if the current process is running on one of the Windows + [sub-]platforms. + + + Non-zero when running on Windows; otherwise, zero. + + + + + This is a wrapper around the + + method. On Mono, it has to call the method overload without the + parameter, due to a bug in Mono. + + + This is used for culture-specific formatting. + + + The format string. + + + An array the objects to format. + + + The resulting string. + + + + + Determines whether or not this assembly is running on .NET Core. + + + Non-zero if this assembly is running on .NET Core. + + + + + Attempts to determine which trace categories should be enabled based + on the specified string value, which must be in the following general + format: + + [prefix1][name1][separator1] ... [prefixN][nameN][separatorN] + + The [prefix] portion of each name may be ommited. When present, it + must be one of the following characters: '+' (plus), '-' (minus), + or '=' (equals). The [name] is case insensitive and must be one of + names defined in the enumeration. The + [separator] portions are required and must be one of the following + characters: '\t' (horizontal tab), '\n' (line feed), ' ' (space), + or ',' (comma). + + Initially, any [name] will be added to the mask of enabled trace + categories; however, when [prefix] is present, it may alter this + behavior, e.g. the '-' character is used to remove an enabled trace + category and the '=' character is used to reset the mask of enabled + trace categories. Finally, the '+' character is used to restore the + initial behavior of adding to the mask of enabled trace categories. + + + The string containing one or more trace categories to enable. In + general, this value will come from a configuration file -OR- the + process environment. + + + Mask of enable trace categories -OR- null to indicate an error was + encountered during processing. + + + + + Determines if the enabled trace categories have already been set. + + + Non-zero if the enabled trace categories have already been set; + otherwise, zero. + + + + + Changes the set of trace categories that are enabled. Disabled + trace categories will not have any associated messages emitted. + + + The trace categories to enable. Any trace categories not present + in this mask will be disabled. + + + + + Attempts to emit a message to the tracing subsystem via the + method. + + + The message to emit. + + + The category to which the message belongs. + + + + + Attempts to convert an object value to a string suitable for display + to humans. + + + The object value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Attempts to convert an array value to a string suitable for display + to humans. + + + The array value to create a string representation of. + + + A string representation of the parameter + -OR- null if it cannot be determined. + + + + + Determines if the specified flags are present within the flags + associated with the parent connection object. + + + The flags associated with the parent connection object. + + + The flags to check for. + + + Non-zero if the specified flag or flags were present; otherwise, + zero. + + + + + Determines if preparing a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + Determines if pre-parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the pre-parameter binding should be logged; otherwise, + zero. + + + + + Determines if parameter binding should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the parameter binding should be logged; otherwise, zero. + + + + + Determines if an exception in a native callback should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be logged; otherwise, zero. + + + + + Determines if backup API errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the backup API error should be logged; otherwise, zero. + + + + + Determines if logging for the class is + disabled. + + + The flags associated with the parent connection object. + + + Non-zero if logging for the class is + disabled; otherwise, zero. + + + + + Determines if errors should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the error should be logged; + otherwise, zero. + + + + + Determines if exceptions should be + logged. + + + The flags associated with the parent connection object. + + + Non-zero if the exception should be + logged; otherwise, zero. + + + + + Determines if retrying a query should be logged. + + + The flags associated with the parent connection object. + + + Non-zero if the query preparation should be logged; otherwise, zero. + + + + + This is the method signature for the SQLite core library logging callback + function for use with sqlite3_log() and the SQLITE_CONFIG_LOG. + + WARNING: This delegate is used more-or-less directly by native code, do + not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + This class implements SQLiteBase completely, and is the guts of the code that interop's SQLite with .NET + + + + + This field is used to refer to memory allocated for the + SQLITE_DBCONFIG_MAINDBNAME value used with the native + "sqlite3_db_config" API. If allocated, the associated + memeory will be freed when the underlying connection is + closed. + + + + + The opaque pointer returned to us by the sqlite provider + + + + + The user-defined functions registered on this connection + + + + + This is the name of the native library file that contains the + "vtshim" extension [wrapper]. + + + + + This is the flag indicate whether the native library file that + contains the "vtshim" extension must be dynamically loaded by + this class prior to use. + + + + + This is the name of the native entry point for the "vtshim" + extension [wrapper]. + + + + + The modules created using this connection. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogPrepare" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogRetry" environment variable has been queried. If so, + it will only be non-zero if the environment variable was present. + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Determines if all calls to prepare a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + Determines if all calls to retry a SQL query will be logged, + regardless of the flags for the associated connection. + + + + + This method attempts to dispose of all the derived + object instances currently associated with the native database connection. + + + + + Returns the number of times the method has been + called. + + + + + This method determines whether or not a + with a return code of should + be thrown after making a call into the SQLite core library. + + + Non-zero if a to be thrown. This method + will only return non-zero if the method was called + one or more times during a call into the SQLite core library (e.g. when + the sqlite3_prepare*() or sqlite3_step() APIs are used). + + + + + Resets the value of the field. + + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound and removed. + + + + Returns non-zero if the underlying native connection handle is owned + by this instance. + + + + + Returns the logical list of functions associated with this connection. + + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + Returns a standard SQLite result code. + + + + Shutdown the SQLite engine so that it can be restarted with different + configuration options. We depend on auto initialization to recover. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. This parameter has no + effect on non-Windows operating systems. + + Returns a standard SQLite result code. + + + + Determines if the associated native connection handle is open. + + + Non-zero if the associated native connection handle is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + This method attempts to determine if a database connection opened + with the specified should be + allowed into the connection pool. + + + The that were specified when the + connection was opened. + + + Non-zero if the connection should (eventually) be allowed into the + connection pool; otherwise, zero. + + + + + Has the sqlite3_errstr() core library API been checked for yet? + If so, is it present? + + + + + Returns the error message for the specified SQLite return code using + the sqlite3_errstr() function, falling back to the internal lookup + table if necessary. + + WARNING: Do not remove this method, it is used via reflection. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Has the sqlite3_stmt_readonly() core library API been checked for yet? + If so, is it present? + + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + This field is used to keep track of whether or not the + "SQLite_ForceLogLifecycle" environment variable has been queried. If + so, it will only be non-zero if the environment variable was present. + + + + + Determines if calls into key members pertaining to the lifecycle of + connections and their associated classes will be logged, regardless + of the flags for the associated connection. + + + Non-zero to log calls into key members pertaining to the lifecycle of + connections and their associated classes (e.g. LINQ, EF6, etc). + + + + + Determines the file name of the native library containing the native + "vtshim" extension -AND- whether it should be dynamically loaded by + this class. + + + This output parameter will be set to non-zero if the returned native + library file name should be dynamically loaded prior to attempting + the creation of native disposable extension modules. + + + The file name of the native library containing the native "vtshim" + extension -OR- null if it cannot be determined. + + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Builds an error message string fragment containing the + defined values of the + enumeration. + + + The built string fragment. + + + + + Returns the current and/or highwater values for the specified + database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + Enables or disables extended result codes returned by SQLite + + + Gets the last SQLite error code + + + Gets the last SQLite extended error code + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + Allows the setting of a logging callback invoked by SQLite when a + log event occurs. Only one callback may be set. If NULL is passed, + the logging callback is unregistered. + + The callback function to invoke. + Returns a result code + + + + Appends an error message and an appropriate line-ending to a + instance. This is useful because the .NET Compact Framework has a slightly different set + of supported methods for the class. + + + The instance to append to. + + + The message to append. It will be followed by an appropriate line-ending. + + + + + This method attempts to cause the SQLite native library to invalidate + its trace callback function pointers that refer to this instance. + This is necessary to prevent calls from native code into delegates + that may have been garbage collected. Normally, these types of issues + can only arise for connections that are added to the pool; howver, it + is good practice to unconditionally invalidate function pointers that + may refer to objects being disposed. + + + Appropriate error messages, if any, will be appended here. + + + Non-zero if this method succeeds; otherwise, zero. + + + + + This method attempts to cause the SQLite native library to invalidate + its function pointers that refer to this instance. This is necessary + to prevent calls from native code into delegates that may have been + garbage collected. Normally, these types of issues can only arise for + connections that are added to the pool; howver, it is good practice to + unconditionally invalidate function pointers that may refer to objects + being disposed. + + + Non-zero to also invalidate trace callback function pointers. + + + Non-zero to also invalidate global function pointers (i.e. those that + are not directly associated with this connection on the native side). + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + This method attempts to free the cached database name used with the + method. + + + Non-zero if this method is being executed within a context where it can + throw an exception in the event of failure; otherwise, zero. + + + Non-zero if this method was successful; otherwise, zero. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy, negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Determines if the SQLite core library has been initialized for the + current process. + + + A boolean indicating whether or not the SQLite core library has been + initialized for the current process. + + + + + Helper function to retrieve a column of data from an active statement. + + The statement being step()'d through + The flags associated with the connection. + The column index to retrieve + The type of data contained in the column. If Uninitialized, this function will retrieve the datatype information. + Returns the data in the column + + + + Alternate SQLite3 object, overriding many text behaviors to support UTF-16 (Unicode) + + + + + Constructs the object used to interact with the SQLite core library + using the UTF-8 text encoding. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + The native handle to be associated with the database connection. + + + The fully qualified file name associated with . + + + Non-zero if the newly created object instance will need to dispose + of when it is no longer needed. + + + + + Overrides SQLiteConvert.ToString() to marshal UTF-16 strings instead of UTF-8 + + A pointer to a UTF-16 string + The length (IN BYTES) of the string + A .NET string + + + + Represents a single SQL backup in SQLite. + + + + + The underlying SQLite object this backup is bound to. + + + + + The actual backup handle. + + + + + The destination database for the backup. + + + + + The destination database name for the backup. + + + + + The source database for the backup. + + + + + The source database name for the backup. + + + + + The last result from the StepBackup method of the SQLite3 class. + This is used to determine if the call to the FinishBackup method of + the SQLite3 class should throw an exception when it receives a non-Ok + return code from the core SQLite library. + + + + + Initializes the backup. + + The base SQLite object. + The backup handle. + The destination database for the backup. + The destination database name for the backup. + The source database for the backup. + The source database name for the backup. + + + + Disposes and finalizes the backup. + + + + + This internal class provides the foundation of SQLite support. It defines all the abstract members needed to implement + a SQLite data provider, and inherits from SQLiteConvert which allows for simple translations of string to and from SQLite. + + + + + The error code used for logging exceptions caught in user-provided + code. + + + + + Returns a string representing the active version of SQLite + + + + + Returns an integer representing the active version of SQLite + + + + + Returns non-zero if this connection to the database is read-only. + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + Returns the number of changes the last executing insert/update caused. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. This is not really a per-connection + value, it is global to the process. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + This is not really a per-connection value, it is global to the process. + + + + + Returns non-zero if the underlying native connection handle is owned by this instance. + + + + + Non-zero to log all calls to prepare a SQL query. + + + + + Non-zero to log all calls to retry a SQL query. + + + + + Returns the logical list of functions associated with this connection. + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Attempts to free as much heap memory as possible for the database connection. + + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Shutdown the SQLite engine so that it can be restarted with different config options. + We depend on auto initialization to recover. + + + + + Determines if the associated native connection handle is open. + + + Non-zero if a database connection is open. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + The name of the attached database to query. + + + The fully qualified path and file name for the currently open database, + if any. + + + + + Opens a database. + + + Implementers should call SQLiteFunction.BindFunctions() and save the array after opening a connection + to bind all attributed user-defined functions and collating sequences to the new connection. + + The filename of the database to open. SQLite automatically creates it if it doesn't exist. + The name of the VFS to use -OR- null to use the default VFS. + The flags associated with the parent connection object + The open flags to use when creating the connection + The maximum size of the pool for the given filename + If true, the connection can be pulled from the connection pool + + + + Closes the currently-open database. + + + After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated + memory associated with the user-defined functions and collating sequences tied to the closed connection. + + Non-zero if connection is being disposed, zero otherwise. + Returns non-zero if the connection was actually closed (i.e. and not simply returned to a pool, etc). + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command. + + The number of milliseconds to wait before returning SQLITE_BUSY + + + + Returns the text of the last error issued by SQLite + + + + + + Returns the text of the last error issued by SQLite -OR- the specified default error text if + none is available from the SQLite core library. + + + The error text to return in the event that one is not available from the SQLite core library. + + + The error text. + + + + + When pooling is enabled, force this connection to be disposed rather than returned to the pool + + + + + When pooling is enabled, returns the number of pool entries matching the current file name. + + The number of pool entries matching the current file name. + + + + Prepares a SQL statement for execution. + + The source connection preparing the command. Can be null for any caller except LINQ + The source command. + The SQL command text to prepare + The previous statement in a multi-statement command, or null if no previous statement exists + The timeout to wait before aborting the prepare + The remainder of the statement that was not processed. Each call to prepare parses the + SQL up to to either the end of the text or to the first semi-colon delimiter. The remaining text is returned + here for a subsequent call to Prepare() until all the text has been processed. + Returns an initialized SQLiteStatement. + + + + Steps through a prepared statement. + + The SQLiteStatement to step through + True if a row was returned, False if not. + + + + Returns non-zero if the specified statement is read-only in nature. + + The statement to check. + True if the outer query is read-only. + + + + Resets a prepared statement so it can be executed again. If the error returned is SQLITE_SCHEMA, + transparently attempt to rebuild the SQL statement and throw an error if that was not possible. + + The statement to reset + Returns -1 if the schema changed while resetting, 0 if the reset was sucessful or 6 (SQLITE_LOCKED) if the reset failed due to a lock + + + + Attempts to interrupt the query currently executing on the associated + native database connection. + + + + + Returns non-zero if the operation for the current connection has been + interrupted. + + + + + This function binds a user-defined function to the connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined function from the connection. + + + The object instance containing + the metadata for the function to be unbound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + Calls the native SQLite core library in order to create a disposable + module containing the implementation of a virtual table. + + + The module object to be used when creating the native disposable module. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to cleanup the resources + associated with a module containing the implementation of a virtual table. + + + The module object previously passed to the + method. + + + The flags for the associated object instance. + + + + + Calls the native SQLite core library in order to declare a virtual table + in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + being declared. + + + The string containing the SQL statement describing the virtual table to + be declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual table + function in response to a call into the + or virtual table methods. + + + The virtual table module that is to be responsible for the virtual table + function being declared. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon failure, + it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns the current and/or highwater values for the specified database status parameter. + + + The database status parameter to query. + + + Non-zero to reset the highwater value to the current value. + + + If applicable, receives the current value. + + + If applicable, receives the highwater value. + + + A standard SQLite return code. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + A standard SQLite return code. + + + + + Enables or disables extension loading by SQLite. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Enables or disables extened result codes returned by SQLite + + true to enable extended result codes, false to disable. + + + + + Returns the numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Result code + + + + Returns the extended numeric result code for the most recent failed SQLite API call + associated with the database connection. + + Extended result code + + + + Add a log message via the SQLite sqlite3_log interface. + + Error code to be logged with the message. + String to be logged. Unlike the SQLite sqlite3_log() + interface, this should be pre-formatted. Consider using the + String.Format() function. + + + + + Checks if the SQLite core library has been initialized in the current process. + + + Non-zero if the SQLite core library has been initialized in the current process, + zero otherwise. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Creates a new SQLite backup object based on the provided destination + database connection. The source database connection is the one + associated with this object. The source and destination database + connections cannot be the same. + + The destination database connection. + The destination database name. + The source database name. + The newly created backup object. + + + + Copies up to N pages from the source database to the destination + database associated with the specified backup object. + + The backup object to use. + + The number of pages to copy or negative to copy all remaining pages. + + + Set to true if the operation needs to be retried due to database + locking issues. + + + True if there are more pages to be copied, false otherwise. + + + + + Returns the number of pages remaining to be copied from the source + database to the destination database associated with the specified + backup object. + + The backup object to check. + The number of pages remaining to be copied. + + + + Returns the total number of pages in the source database associated + with the specified backup object. + + The backup object to check. + The total number of pages in the source database. + + + + Destroys the backup object, rolling back any backup that may be in + progess. + + The backup object to destroy. + + + + Returns the error message for the specified SQLite return code using + the internal static lookup table. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Creates temporary tables on the connection so schema information can be queried. + + + The connection upon which to build the schema tables. + + + + + The extra behavioral flags that can be applied to a connection. + + + + + No extra flags. + + + + + Enable logging of all SQL statements to be prepared. + + + + + Enable logging of all bound parameter types and raw values. + + + + + Enable logging of all bound parameter strongly typed values. + + + + + Enable logging of all exceptions caught from user-provided + managed code called from native code via delegates. + + + + + Enable logging of backup API errors. + + + + + Skip adding the extension functions provided by the native + interop assembly. + + + + + When binding parameter values with the + type, use the interop method that accepts an + value. + + + + + When binding parameter values, always bind them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + When returning column values, always return them as though they were + plain text (i.e. no numeric, date/time, or other conversions should + be attempted). + + + + + Prevent this object instance from + loading extensions. + + + + + Prevent this object instance from + creating virtual table modules. + + + + + Skip binding any functions provided by other managed assemblies when + opening the connection. + + + + + Skip setting the logging related properties of the + object instance that was passed to + the method. + + + + + Enable logging of all virtual table module errors seen by the + method. + + + + + Enable logging of certain virtual table module exceptions that cannot + be easily discovered via other means. + + + + + Enable tracing of potentially important [non-fatal] error conditions + that cannot be easily reported through other means. + + + + + When binding parameter values, always use the invariant culture when + converting their values from strings. + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings. + + + + + Disable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using the connection pool by default. If the "Pooling" + connection string property is specified, its value will override + this flag. The precise outcome of combining this flag with the + flag is unspecified; however, + one of the flags will be in effect. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. These + per-connection mappings, when present, override the corresponding + global mappings. + + + + + Disable using global mappings between type names and + values. This may be useful in some very narrow + cases; however, if there are no per-connection type mappings, the + fallback defaults will be used for both type names and their + associated values. Therefore, use of this flag + is not recommended. + + + + + When the property is used, it + should return non-zero if there were ever any rows in the associated + result sets. + + + + + Enable "strict" transaction enlistment semantics. Setting this flag + will cause an exception to be thrown if an attempt is made to enlist + in a transaction with an unavailable or unsupported isolation level. + In the future, more extensive checks may be enabled by this flag as + well. + + + + + Enable mapping of unsupported transaction isolation levels to the + closest supported transaction isolation level. + + + + + When returning column values, attempt to detect the affinity of + textual values by checking if they fully conform to those of the + , + , + , + or types. + + + + + When returning column values, attempt to detect the type of + string values by checking if they fully conform to those of + the , + , + , + or types. + + + + + Skip querying runtime configuration settings for use by the + class, including the default + value and default database type name. + NOTE: If the + and/or + properties are not set explicitly nor set via their connection + string properties and repeated calls to determine these runtime + configuration settings are seen to be a problem, this flag + should be set. + + + + + When binding parameter values with the + type, take their into account as + well as that of the associated . + + + + + If an exception is caught when raising the + event, the transaction + should be rolled back. If this is not specified, the transaction + will continue the commit process instead. + + + + + If an exception is caught when raising the + event, the action should + should be denied. If this is not specified, the action will be + allowed instead. + + + + + If an exception is caught when raising the + event, the operation + should be interrupted. If this is not specified, the operation + will simply continue. + + + + + Attempt to unbind all functions provided by other managed assemblies + when closing the connection. + + + + + When returning column values as a , skip + verifying their affinity. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + Enable using per-connection mappings between type names and + values. Also see the + , + , and + methods. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the parameter name. + + + + + If the database type name has not been explicitly set for the + parameter specified, fallback to using the database type name + associated with the value. + + + + + When returning column values, skip verifying their affinity. + + + + + Allow transactions to be nested. The outermost transaction still + controls whether or not any changes are ultimately committed or + rolled back. All non-outermost transactions are implemented using + the SAVEPOINT construct. + + + + + When binding parameter values, always bind + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When returning column values, always return + values as though they were plain text (i.e. not , + which is the legacy behavior). + + + + + When binding parameter values, always use + the invariant culture when converting their values to strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable waiting for the enlistment to be reset prior to attempting + to create a new enlistment. This may be necessary due to the + semantics used by distributed transactions, which complete + asynchronously. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + When returning column values, always use + the invariant culture when converting their values from strings. + + + + + EXPERIMENTAL -- + Enable strict conformance to the ADO.NET standard, e.g. use of + thrown exceptions to indicate common error conditions. + + + + + EXPERIMENTAL -- + When opening a connection, attempt to hide the password from the + connection string, etc. Given the memory architecture of the CLR, + (and P/Invoke) this is not 100% reliable and should not be relied + upon for security critical uses or applications. + + + + + Skip adding the extension functions provided by the native interop + assembly if they would conflict with a function provided by the + SQLite core library. + + + + + If an exception is caught when raising the + event, the operation + should be stopped. If this is not specified, the operation + will be retried. + + + + + Enable logging of internal retries during statment preparation + and stepping. + + + + + If a connection cannot be opened using the connection pool, throw + an exception instead of default behavior of falling back to using + a non-pooled connection. + + + + + Be more aggressive about disposing of unused native resources, + e.g. connections, transactions, commands, data readers, blobs, + etc. + + WARNING: This flag is enabled by default and should not be + disabled unless there is a very good reason, e.g. + an application that relies on the legacy disposal + behavior. + + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted). + + + + + When binding parameter values, always use the invariant culture when + converting their values to strings or from strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings. + + + + + When binding parameter values or returning column values, always + treat them as though they were plain text (i.e. no numeric, + date/time, or other conversions should be attempted) and always + use the invariant culture when converting their values to strings + or from strings. + + + + + Enables use of all per-connection value handling callbacks. + + + + + Enables use of all applicable + properties as fallbacks for the database type name. + + + + + Enable all logging. + + + + + The default logging related flags for new connections. + + + + + The default extra flags for new connections. + + + + + The default extra flags for new connections with all logging enabled. + + + + + These are the supported status parameters for use with the native + SQLite library. + + + + + This parameter returns the number of lookaside memory slots + currently checked out. + + + + + This parameter returns the approximate number of bytes of + heap memory used by all pager caches associated with the + database connection. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED is always 0. + + + + + This parameter returns the approximate number of bytes of + heap memory used to store the schema for all databases + associated with the connection - main, temp, and any ATTACH-ed + databases. The full amount of memory used by the schemas is + reported, even if the schema memory is shared with other + database connections due to shared cache mode being enabled. + The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED + is always 0. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + all lookaside memory already being in use. Only the high-water + value is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that were + satisfied using lookaside memory. Only the high-water value + is meaningful; the current value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number malloc attempts that might + have been satisfied using lookaside memory but failed due to + the amount of memory requested being larger than the lookaside + slot size. Only the high-water value is meaningful; the current + value is always zero. + + + + + This parameter returns the number of pager cache hits that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_HIT is always 0. + + + + + This parameter returns the number of pager cache misses that + have occurred. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_MISS is always 0. + + + + + This parameter returns the number of dirty cache entries that + have been written to disk. Specifically, the number of pages + written to the wal file in wal mode databases, or the number + of pages written to the database file in rollback mode + databases. Any pages written as part of transaction rollback + or database recovery operations are not included. If an IO or + other error occurs while writing a page to disk, the effect + on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is + undefined. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_WRITE is always 0. + + + + + This parameter returns zero for the current value if and only + if all foreign key constraints (deferred or immediate) have + been resolved. The highwater mark is always 0. + + + + + This parameter is similar to DBSTATUS_CACHE_USED, except that + if a pager cache is shared between two or more connections the + bytes of heap memory used by that pager cache is divided evenly + between the attached connections. In other words, if none of + the pager caches associated with the database connection are + shared, this request returns the same value as DBSTATUS_CACHE_USED. + Or, if one or more or the pager caches are shared, the value + returned by this call will be smaller than that returned by + DBSTATUS_CACHE_USED. The highwater mark associated with + SQLITE_DBSTATUS_CACHE_USED_SHARED is always 0. + + + + + This parameter returns the number of dirty cache entries that have + been written to disk in the middle of a transaction due to the page + cache overflowing. Transactions are more efficient if they are + written to disk all at once. When pages spill mid-transaction, that + introduces additional overhead. This parameter can be used help + identify inefficiencies that can be resolved by increasing the cache + size. + + + + + These are the supported configuration verbs for use with the native + SQLite library. They are used with the + method. + + + + + This value represents an unknown (or invalid) option, do not use it. + + + + + This option is used to change the name of the "main" database + schema. The sole argument is a pointer to a constant UTF8 string + which will become the new schema name in place of "main". + + + + + This option is used to configure the lookaside memory allocator. + The value must be an array with three elements. The second element + must be an containing the size of each buffer + slot. The third element must be an containing + the number of slots. The first element must be an + that points to a native memory buffer of bytes equal to or greater + than the product of the second and third element values. + + + + + This option is used to enable or disable the enforcement of + foreign key constraints. + + + + + This option is used to enable or disable triggers. + + + + + This option is used to enable or disable the two-argument version + of the fts3_tokenizer() function which is part of the FTS3 full-text + search engine extension. + + + + + This option is used to enable or disable the loading of extensions. + + + + + This option is used to enable or disable the automatic checkpointing + when a WAL database is closed. + + + + + This option is used to enable or disable the query planner stability + guarantee (QPSG). + + + + + This option is used to enable or disable the extra EXPLAIN QUERY PLAN + output for trigger programs. + + + + + This option is used as part of the process to reset a database back + to an empty state. Because resetting a database is destructive and + irreversible, the process requires the use of this obscure flag and + multiple steps to help ensure that it does not happen by accident. + + + + + This option activates or deactivates the "defensive" flag for a + database connection. When the defensive flag is enabled, language + features that allow ordinary SQL to deliberately corrupt the database + file are disabled. The disabled features include but are not limited + to the following: + ]]> + ]]> + The PRAGMA writable_schema=ON statement. + ]]> + ]]> + The PRAGMA journal_mode=OFF statement. + ]]> + ]]> + Writes to the sqlite_dbpage virtual table. + ]]> + ]]> + Direct writes to shadow tables. + ]]> + ]]> + + + + + This option activates or deactivates the "writable_schema" flag. + + + + + This option activates or deactivates the legacy behavior of the ALTER + TABLE RENAME command such it behaves as it did prior to version 3.24.0 + (2018-06-04). + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DML statement only, that is DELETE, INSERT, + SELECT, and UPDATE statements. + + + + + This option activates or deactivates the legacy double-quoted string + literal misfeature for DDL statements, such as CREATE TABLE and CREATE + INDEX. + + + + + This option is used to enable or disable CREATE VIEW. + + + + + This option activates or deactivates the legacy file format flag. + + + + + This option tells SQLite to assume that database schemas (i.e. the + contents of the sqlite_master tables) are untainted by malicious + content. When the trusted schema option is disabled, SQLite takes + additional defensive steps to protect the application from harm + including: + ]]> + ]]> + Prohibit the use of SQL functions inside triggers, views, CHECK + constraints, DEFAULT clauses, expression indexes, partial indexes, + or generated columns unless those functions are tagged with + SQLITE_INNOCUOUS. + ]]> + ]]> + Prohibit the use of virtual tables inside of triggers or views + unless those virtual tables are tagged with SQLITE_VTAB_INNOCUOUS. + ]]> + This setting defaults to "on" for legacy compatibility, however + all applications are advised to turn it off if possible. This + setting can also be controlled using the PRAGMA trusted_schema + statement. + + + + + This option is only useful in SQLITE_ENABLE_STMT_SCANSTATUS builds. + In this case, it sets or clears a flag that enables collection of + the sqlite3_stmt_scanstatus_v2() statistics. For statistics to be + collected, the flag must be set on the database handle both when + the SQL statement is prepared and when it is stepped. The flag is + set (collection of statistics is enabled) by default. + + + + + The SQLITE_DBCONFIG_REVERSE_SCANORDER option change the default + order in which tables and indexes are scanned so that the scans + start at the end and work toward the beginning rather than + starting at the beginning and working toward the end. Setting + SQLITE_DBCONFIG_REVERSE_SCANORDER is the same as setting [PRAGMA + reverse_unordered_selects]. This configuration option is useful + for application testing. + + + + + These constants are returned by the sqlite3_txn_state() API. + + + + + These constants are used with the sqlite3_trace_v2() API and the + callbacks registered by it. + + + + + This value represents a mask where no trace events should be + generated. + + + + + The trace event invoked when a prepared statement first begins + running and possibly at other times during the execution of + the prepared statement, such as at the start of each trigger + subprogram. + + + + + The trace event invoked when a prepared statement finishes. + It provides a 64-bit integer which is the estimated of the + number of nanosecond that the prepared statement took to run. + + + + + The trace event invoked when a prepared statement generates + a single row of result. + + + + + The trace event invoked when a database connection closes. + + + + + This value represents a mask where all supported trace events + should be generated. This value is subject to change, e.g. + when additional trace events are added by the SQLite core + library. + + + + + These constants are used with the sqlite3_limit() API. + + + + + This value represents an unknown (or invalid) limit, do not use it. + + + + + The maximum size of any string or BLOB or table row, in bytes. + + + + + The maximum length of an SQL statement, in bytes. + + + + + The maximum number of columns in a table definition or in the + result set of a SELECT or the maximum number of columns in an + index or in an ORDER BY or GROUP BY clause. + + + + + The maximum depth of the parse tree on any expression. + + + + + The maximum number of terms in a compound SELECT statement. + + + + + The maximum number of instructions in a virtual machine program + used to implement an SQL statement. If sqlite3_prepare_v2() or + the equivalent tries to allocate space for more than this many + opcodes in a single prepared statement, an SQLITE_NOMEM error + is returned. + + + + + The maximum number of arguments on a function. + + + + + The maximum number of attached databases. + + + + + The maximum length of the pattern argument to the LIKE or GLOB + operators. + + + + + The maximum index number of any parameter in an SQL statement. + + + + + The maximum depth of recursion for triggers. + + + + + The maximum number of auxiliary worker threads that a single + prepared statement may start. + + + + + Represents a single SQL blob in SQLite. + + + + + The underlying SQLite object this blob is bound to. + + + + + The actual blob handle. + + + + + Initializes the blob. + + The base SQLite object. + The blob handle. + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID -OR- if the query + does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The instance with a result set + containing the desired blob column. + + + The index of the blob column. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Creates a object. This will not work + for tables that were created WITHOUT ROWID. + + + The connection to use when opening the blob object. + + + The name of the database containing the blob object. + + + The name of the table containing the blob object. + + + The name of the column containing the blob object. + + + The integer identifier for the row associated with the desired + blob object. + + + Non-zero to open the blob object for read-only access. + + + The newly created instance -OR- null + if an error occurs. + + + + + Throws an exception if the blob object does not appear to be open. + + + + + Throws an exception if an invalid read/write parameter is detected. + + + When reading, this array will be populated with the bytes read from + the underlying database blob. When writing, this array contains new + values for the specified portion of the underlying database blob. + + + The number of bytes to read or write. + + + The byte offset, relative to the start of the underlying database + blob, where the read or write operation will begin. + + + + + Retargets this object to an underlying database blob for a + different row; the database, table, and column remain exactly + the same. If this operation fails for any reason, this blob + object is automatically disposed. + + + The integer identifier for the new row. + + + + + Queries the total number of bytes for the underlying database blob. + + + The total number of bytes for the underlying database blob. + + + + + Reads data from the underlying database blob. + + + This array will be populated with the bytes read from the + underlying database blob. + + + The number of bytes to read. + + + The byte offset, relative to the start of the underlying + database blob, where the read operation will begin. + + + + + Writes data into the underlying database blob. + + + This array contains the new values for the specified portion of + the underlying database blob. + + + The number of bytes to write. + + + The byte offset, relative to the start of the underlying + database blob, where the write operation will begin. + + + + + Closes the blob, freeing the associated resources. + + + + + Disposes and finalizes the blob. + + + + + The destructor. + + + + + SQLite implementation of DbCommand. + + + + + These are the extra command behavior flags that should be used for all calls + into the , , + and methods. + + + + + The default connection string to be used when creating a temporary + connection to execute a command via the static + or + + methods. + + + + + The command text this command is based on + + + + + The connection the command is associated with + + + + + The version of the connection the command is associated with + + + + + Indicates whether or not a DataReader is active on the command. + + + + + The timeout for the command, kludged because SQLite doesn't support per-command timeout values + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the current command. + + + + + Designer support + + + + + Used by DbDataAdapter to determine updating behavior + + + + + The collection of parameters for the command + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + Unprocessed SQL text that has not been executed + + + + + Transaction associated with this command + + + + + Constructs a new SQLiteCommand + + + Default constructor + + + + + Initializes the command with the given command text + + The SQL command text + + + + Initializes the command with the given SQL command text and attach the command to the specified + connection. + + The SQL command text + The connection to associate with the command + + + + Initializes the command and associates it with the specified connection. + + The connection to associate with the command + + + + Initializes a command with the given SQL, connection and transaction + + The SQL command text + The connection to associate with the command + The transaction the command should be associated with + + + + Disposes of the command and clears all member variables + + Whether or not the class is being explicitly or implicitly disposed + + + + Modifies the specified to include + the global command behavior flags, if any. + + + The as it was originally passed into + the , , + or methods. + + + + + Clears and destroys all statements currently prepared + + + + + Builds an array of prepared statements for each complete SQL statement in the command text + + + + + Not implemented + + + + + The SQL command text associated with the command + + + + + The amount of time to wait for the connection to become available before erroring out + + + + + The maximum amount of time to sleep when retrying a call to prepare or step for the + current command. + + + + + The type of the command. SQLite only supports CommandType.Text + + + + + Forwards to the local CreateParameter() function + + + + + + Create a new parameter + + + + + + The connection associated with this command + + + + + Forwards to the local Connection property + + + + + Returns the SQLiteParameterCollection for the given command + + + + + Forwards to the local Parameters property + + + + + The transaction associated with this command. SQLite only supports one transaction per connection, so this property forwards to the + command's underlying connection. + + + + + Forwards to the local Transaction property + + + + + Verifies that all SQL queries associated with the current command text + can be successfully compiled. A will be + raised if any errors occur. + + + + + This function ensures there are no active readers, that we have a valid connection, + that the connection is open, that all statements are prepared and all parameters are assigned + in preparation for allocating a data reader. + + + + + Creates a new SQLiteDataReader to execute/iterate the array of SQLite prepared statements + + The behavior the data reader should adopt + Returns a SQLiteDataReader object + + + + This method creates a new connection, executes the query using the given + execution type, closes the connection, and returns the results. If the + connection string is null, a temporary in-memory database connection will + be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method creates a new connection, executes the query using the given + execution type and command behavior, closes the connection unless a data + reader is created, and returns the results. If the connection string is + null, a temporary in-memory database connection will be used. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection string to the database to be opened, used, and closed. If + this parameter is null, a temporary in-memory database will be used. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + This method executes a query using the given execution type and command + behavior and returns the results. + + + The text of the command to be executed. + + + The execution type for the command. This is used to determine which method + of the command object to call, which then determines the type of results + returned, if any. + + + The command behavior flags for the command. + + + The connection used to create and execute the command. + + + The SQL parameter values to be used when building the command object to be + executed, if any. + + + The results of the query -OR- null if no results were produced from the + given execution type. + + + + + Overrides the default behavior to return a SQLiteDataReader specialization class + + The flags to be associated with the reader. + A SQLiteDataReader + + + + Overrides the default behavior of DbDataReader to return a specialized SQLiteDataReader class + + A SQLiteDataReader + + + + Called by the SQLiteDataReader when the data reader is closed. + + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The number of rows inserted/updated affected by it. + + + + Execute the command and return the number of rows inserted/updated affected by it. + + The flags to be associated with the reader. + The number of rows inserted/updated affected by it. + + + + This integer value is used with + values. When set, extra + calls are not performed within the + methods for write transactions. This value should be used with + extreme care because it can cause unusual behavior. It is + intended for use only by legacy applications that rely on the + old, incorrect behavior. + + + + + This integer value is used with + values. When set, extra + calls are performed within the + methods for all transactions. This value should be used with + extreme care because it can cause unusual behavior. + + + + + Checks to see if the extra + calls within the methods should + be skipped. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be skipped; otherwise, zero. + + + + + Checks to see if the extra + calls within the methods should + be forced. + + + The behavior flags, exactly as they were passed into the + methods. + + + Non-zero if the extra reads should be forced; otherwise, zero. + + + + + Attempts to combine an original + value with a list of new values. + + + The original value, if any. If + this value is null, a suitable default value will be used. + + + The list of new values delimited + by spaces or commas. Each value may have an optional prefix, a + '+' or '-' sign. If the prefix is a '+', the value is added to + the original value. If the + prefix is a '-', the value is removed from the original + value. In addition to the values + formally defined for , the extra + values "SkipExtraReads" and "ForceExtraReads" are recognized. + Other extra values may be added in the future. + + + Upon success, this will be set to null. Upon failure, this will + be set to an appropriate error message. + + + The resulting value -OR- null + if it cannot be determined due to an error -OR- null if the + original value and list of new + value are both null. The way to + differentiate between these two null return scenarios is to + check the error message against null. If the error message is + not null, an error was encountered; otherwise, the null was the + natural return value. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks if extra calls to the + method are necessary. If so, it attempts to perform them. If + not, nothing is done. + + + The data reader instance as it was received from one of the + methods. + + + The original command behavior flags as passed into one of the + query execution methods. + + + The number of extra calls to + that were performed -OR- negative one to indicate they were not + enabled. + + + + + Checks transaction state of the associated database connection. + + + The desired transaction state. + + + Non-zero if current transaction state of the associated database + connection matches the desired transaction state. + + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The first column of the first row of the first resultset from the query. + + + + Execute the command and return the first column of the first row of the resultset + (if present), or null if no resultset was returned. + + The flags to be associated with the reader. + The first column of the first row of the first resultset from the query. + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + + + This method resets all the prepared statements held by this instance + back to their initial states, ready to be re-executed. + + + Non-zero if the parameter bindings should be cleared as well. + + + If this is zero, a may be thrown for + any unsuccessful return codes from the native library; otherwise, a + will only be thrown if the connection + or its state is invalid. + + + + + Does nothing. Commands are prepared as they are executed the first time, and kept in prepared state afterwards. + + + + + Sets the method the SQLiteCommandBuilder uses to determine how to update inserted or updated rows in a DataTable. + + + + + Determines if the command is visible at design time. Defaults to True. + + + + + Clones a command, including all its parameters + + A new SQLiteCommand with the same commandtext, connection and parameters + + + + This method attempts to build and return a string containing diagnostic + information for use by the test suite. This method should not be used + by application code. It is designed for use by the test suite only and + may be modified or removed at any time. + + + A string containing information for use by the test suite -OR- null if + that information is not available. + + + + + SQLite implementation of DbCommandBuilder. + + + + + Default constructor + + + + + Initializes the command builder and associates it with the specified data adapter. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Minimal amount of parameter processing. Primarily sets the DbType for the parameter equal to the provider type in the schema + + The parameter to use in applying custom behaviors to a row + The row to apply the parameter to + The type of statement + Whether the application of the parameter is part of a WHERE clause + + + + Returns a valid named parameter + + The name of the parameter + Error + + + + Returns a named parameter for the given ordinal + + The i of the parameter + Error + + + + Returns a placeholder character for the specified parameter i. + + The index of the parameter to provide a placeholder for + Returns a named parameter + + + + Sets the handler for receiving row updating events. Used by the DbCommandBuilder to autogenerate SQL + statements that may not have previously been generated. + + A data adapter to receive events on. + + + + Gets/sets the DataAdapter for this CommandBuilder + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + Returns the automatically-generated SQLite command to delete rows from the database + + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + Returns the automatically-generated SQLite command to update rows in the database + + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + Returns the automatically-generated SQLite command to insert rows into the database + + + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Overridden to hide its property from the designer + + + + + Places brackets around an identifier + + The identifier to quote + The bracketed identifier + + + + Removes brackets around an identifier + + The quoted (bracketed) identifier + The undecorated identifier + + + + Overridden to hide its property from the designer + + + + + Override helper, which can help the base command builder choose the right keys for the given query + + + + + + + This enumeration is used with the + callback in order + to determine which of the connection string properties is + to be set with its returned string value. + + + + + No password mode, skip setting the password. + + + + + Use the "Password" connection string property. + + + + + Use the "HexPassword" connection string property. + + + + + Use the "TextPassword" connection string property. + + + + + Use the "TextHexPassword" connection string property. + + + + + This class represents a single value to be returned + from the class via + its , + , + , + , + , + , + , + , + , + , + , + , + , + , + , or + method. If the value of the + associated public field of this class is null upon returning from the + callback, the null value will only be used if the return type for the + method called is not a value type. + If the value to be returned from the + method is unsuitable (e.g. null with a value type), an exception will + be thrown. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method -OR- null to + indicate an error. + + + + + The value to be returned from the + method. + + + + + The value to be returned from the + method. + + + + + This class represents the parameters that are provided + to the methods, with + the exception of the column index (provided separately). + + + + + This class represents the parameters that are provided to + the method, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + The value that was originally specified for the "readOnly" + parameter to the method. + + + + + This class represents the parameters that are provided + to the and + methods, with + the exception of the column index (provided separately). + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + Constructs an instance of this class to pass into a user-defined + callback associated with the + method. + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + The value that was originally specified for the "dataOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "buffer" + parameter to the + method. + + + + + The value that was originally specified for the "bufferOffset" + parameter to the or + methods. + + + + + The value that was originally specified for the "length" + parameter to the or + methods. + + + + + This class represents the parameters and return values for the + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , and + methods. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs a new instance of this class. Depending on the method + being called, the and/or + parameters may be null. + + + The name of the method that was + responsible for invoking this callback. + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + This may be used by the callback to set the return value for the + called method. + + + + + The name of the method that was + responsible for invoking this callback. + + + + + If the or + method is being called, + this object will contain the array related parameters for that + method. If the method is + being called, this object will contain the blob related parameters + for that method. + + + + + This may be used by the callback to set the return value for the + called method. + + + + + This represents a method that will be called in response to a request to + bind a parameter to a command. If an exception is thrown, it will cause + the parameter binding operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The instance being bound to the command. + + + The database type name associated with this callback. + + + The ordinal of the parameter being bound to the command. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the parameter binding call should + be skipped (i.e. the parameter should not be bound at all). Great care + should be used when setting this to non-zero. + + + + + This represents a method that will be called in response to a request + to read a value from a data reader. If an exception is thrown, it will + cause the data reader operation to fail -AND- it will continue to unwind + the call stack. + + + The instance in use. + + + The instance in use. + + + The flags associated with the instance + in use. + + + The parameter and return type data for the column being read from the + data reader. + + + The database type name associated with this callback. + + + The zero based index of the column being read from the data reader. + + + The data originally used when registering this callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + This represents a method to be called to obtain the encryption + password for the associated connection, which is passed in the + parameter. + + + The connection being opened. + + + The called method may modify this parameter in order to change + which connection string property is used to setup the password. + + + The password string to use when opening the connection. + + + + + This class represents the custom data type handling callbacks + for a single type name. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Provides the underlying storage for the + property. + + + + + Constructs an instance of this class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + Creates an instance of the class. + + + The custom paramater binding callback. This parameter may be null. + + + The custom data reader value callback. This parameter may be null. + + + The extra data to pass into the parameter binding callback. This + parameter may be null. + + + The extra data to pass into the data reader value callback. This + parameter may be null. + + + + + The database type name that the callbacks contained in this class + will apply to. This value may not be null. + + + + + The custom paramater binding callback. This value may be null. + + + + + The custom data reader value callback. This value may be null. + + + + + The extra data to pass into the parameter binding callback. This + value may be null. + + + + + The extra data to pass into the data reader value callback. This + value may be null. + + + + + This class represents the mappings between database type names + and their associated custom data type handling callbacks. + + + + + Constructs an (empty) instance of this class. + + + + + Event data for connection event handlers. + + + + + Returns the number of instances of this class that have been created + within this application domain. + + + + + The type of event being raised. + + + + + The associated with this event, if any. + + + + + The transaction associated with this event, if any. + + + + + The command associated with this event, if any. + + + + + The data reader associated with this event, if any. + + + + + The critical handle associated with this event, if any. + + + + + Command or message text associated with this event, if any. + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + + + + Constructs the object. + + The type of event being raised. + The base associated + with this event, if any. + The transaction associated with this event, if any. + The command associated with this event, if any. + The data reader associated with this event, if any. + The critical handle associated with this event, if any. + The command or message text, if any. + The extra data, if any. + The optional event result, if any. + + + + Raised when an event pertaining to a connection occurs. + + The connection involved. + Extra information about the event. + + + + SQLite implentation of DbConnection. + + + The property can contain the following parameter(s), delimited with a semi-colon: + + + Parameter + Values + Required + Default + + + Data Source + + This may be a file name, the string ":memory:", or any supported URI (starting with SQLite 3.7.7). + Starting with release 1.0.86.0, in order to use more than one consecutive backslash (e.g. for a + UNC path), each of the adjoining backslash characters must be doubled (e.g. "\\Network\Share\test.db" + would become "\\\\Network\Share\test.db"). + + Y + + + + Uri + + If specified, this must be a file name that starts with "file://", "file:", or "/". Any leading + "file://" or "file:" prefix will be stripped off and the resulting file name will be used to open + the database. + + N + null + + + FullUri + + If specified, this must be a URI in a format recognized by the SQLite core library (starting with + SQLite 3.7.7). It will be passed verbatim to the SQLite core library. + + N + null + + + Version + 3 + N + 3 + + + UseUTF16Encoding + + True - The UTF-16 encoding should be used. +
+ False - The UTF-8 encoding should be used. +
+ N + False +
+ + DefaultDbType + + This is the default to use when one cannot be determined based on the + column metadata and the configured type mappings. + + N + null + + + DefaultTypeName + + This is the default type name to use when one cannot be determined based on the column metadata + and the configured type mappings. + + N + null + + + IncludeDefaultFlags + + True - Combine the specified connection flags, if any, with the value of the + property. +
+ False - Do not combine the specified connection flags, if any, with the value of the + property. +
+ N + True +
+ + NoDefaultFlags + + True - Do not combine the pre-existing connection flags, if any, with the value of the + property. +
+ False - Combine the pre-existing connection flags, if any, with the value of the + property. +
+ N + False +
+ + NoSharedFlags + + True - Do not combine the specified (or existing) connection flags with the value of the + property. +
+ False - Combine the specified (or existing) connection flags with the value of the + property. +
+ N + False +
+ + VfsName + + The name of the VFS to use when opening the database connection. + If this is not specified, the default VFS will be used. + + N + null + + + ZipVfsVersion + + If non-null, this is the "version" of ZipVFS to use. This requires + the System.Data.SQLite interop assembly -AND- primary managed assembly + to be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. The valid values are "v2" and "v3". Using + anyother value will cause an exception to be thrown. Please see the + ZipVFS documentation for more information on how to use this parameter. + + N + null + + + DateTimeFormat + + Ticks - Use the value of DateTime.Ticks.
+ ISO8601 - Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC + DateTime values and "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values).
+ JulianDay - The interval of time in days and fractions of a day since January 1, 4713 BC.
+ UnixEpoch - The whole number of seconds since the Unix epoch (January 1, 1970).
+ InvariantCulture - Any culture-independent string value that the .NET Framework can interpret as a valid DateTime.
+ CurrentCulture - Any string value that the .NET Framework can interpret as a valid DateTime using the current culture.
+ N + ISO8601 +
+ + DateTimeKind + + Unspecified - Not specified as either UTC or local time. +
+ Utc - The time represented is UTC. +
+ Local - The time represented is local time. +
+ N + Unspecified +
+ + DateTimeFormatString + + The exact DateTime format string to use for all formatting and parsing of all DateTime + values for this connection. + + N + null + + + BaseSchemaName + + Some base data classes in the framework (e.g. those that build SQL queries dynamically) + assume that an ADO.NET provider cannot support an alternate catalog (i.e. database) without supporting + alternate schemas as well; however, SQLite does not fit into this model. Therefore, this value is used + as a placeholder and removed prior to preparing any SQL statements that may contain it. + + N + sqlite_default_schema + + + BinaryGUID + + True - Store GUID columns in binary form +
+ False - Store GUID columns as text +
+ N + True +
+ + Cache Size + + If the argument N is positive then the suggested cache size is set to N. + If the argument N is negative, then the number of cache pages is adjusted + to use approximately abs(N*4096) bytes of memory. Backwards compatibility + note: The behavior of cache_size with a negative N was different in SQLite + versions prior to 3.7.10. In version 3.7.9 and earlier, the number of + pages in the cache was set to the absolute value of N. + + N + -2000 + + + Synchronous + + Normal - Normal file flushing behavior +
+ Full - Full flushing after all writes +
+ Off - Underlying OS flushes I/O's +
+ N + Full +
+ + Page Size + {size in bytes} + N + 4096 + + + Password + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + HexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + TextPassword + + {password} - Using this parameter requires that the legacy CryptoAPI-based + (RC4) codec (or the SQLite Encryption Extension) be enabled at compile-time for + both the native interop assembly and the core managed assemblies; otherwise, + using this parameter may result in an exception being thrown when attempting + to open the connection. + + N + + + + TextHexPassword + + {hexPassword} - Must contain a sequence of zero or more hexadecimal encoded + byte values without a leading "0x" prefix. Using this parameter requires + that the legacy CryptoAPI-based (RC4) codec (or the SQLite Encryption Extension) + be enabled at compile-time for both the native interop assembly and the + core managed assemblies; otherwise, using this parameter may result in an + exception being thrown when attempting to open the connection. + + N + + + + Enlist + + Y - Automatically enlist in distributed transactions +
+ N - No automatic enlistment +
+ N + Y +
+ + Pooling + + True - Use connection pooling.
+ False - Do not use connection pooling.

+ WARNING: When using the default connection pool implementation, + setting this property to True should be avoided by applications that make + use of COM (either directly or indirectly) due to possible deadlocks that + can occur during the finalization of some COM objects. +
+ N + False +
+ + FailIfMissing + + True - Don't create the database if it does not exist, throw an error instead +
+ False - Automatically create the database if it does not exist +
+ N + False +
+ + Max Page Count + {size in pages} - Limits the maximum number of pages (limits the size) of the database + N + 0 + + + Legacy Format + + True - Use the more compatible legacy 3.x database format +
+ False - Use the newer 3.3x database format which compresses numbers more effectively +
+ N + False +
+ + Default Timeout + {time in seconds}
The default command timeout
+ N + 30 +
+ + DefaultMaximumSleepTime + {time in milliseconds}
The default maximum sleep time for new commands
+ N + 150 +
+ + BusyTimeout + {time in milliseconds}
Sets the busy timeout for the core library.
+ N + 0 +
+ + WaitTimeout + {time in milliseconds}
+ EXPERIMENTAL -- The wait timeout to use with + method. This is only used when + waiting for the enlistment to be reset prior to enlisting in a transaction, + and then only when the appropriate connection flag is set.
+ N + 30000 +
+ + Journal Mode + + Delete - Delete the journal file after a commit. +
+ Persist - Zero out and leave the journal file on disk after a + commit. +
+ Off - Disable the rollback journal entirely. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Truncate - Truncate the journal file to zero-length instead of + deleting it. +
+ Memory - Store the journal in volatile RAM. This saves disk I/O + but at the expense of database safety and integrity. If the application + using SQLite crashes in the middle of a transaction when this journaling + mode is set, then the database file will very likely go corrupt. +
+ Wal - Use a write-ahead log instead of a rollback journal. +
+ N + Delete +
+ + Read Only + + True - Open the database for read only access +
+ False - Open the database for normal read/write access +
+ N + False +
+ + Max Pool Size + The maximum number of connections for the given connection string that can be in the connection pool + N + 100 + + + Default IsolationLevel + The default transaciton isolation level + N + Serializable + + + Foreign Keys + Enable foreign key constraints + N + False + + + Flags + Extra behavioral flags for the connection. See the enumeration for possible values. + N + Default + + + SetDefaults + + True - Apply the default connection settings to the opened database.
+ False - Skip applying the default connection settings to the opened database. +
+ N + True +
+ + ToFullPath + + True - Attempt to expand the data source file name to a fully qualified path before opening. +
+ False - Skip attempting to expand the data source file name to a fully qualified path before opening. +
+ N + True +
+ + PrepareRetries + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + N + 3 + + + StepRetries + + The maximum number of retries when stepping a SQL statement. This + normally only applies to stepping errors resulting from the database + being locked or its schema being changed. + + N + 40 + + + ProgressOps + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as well. + + N + 0 + + + Recursive Triggers + + True - Enable the recursive trigger capability. + False - Disable the recursive trigger capability. + + N + False + +
+
+
+ + + The "invalid value" for the enumeration used + by the property. This constant is shared + by this class and the SQLiteConnectionStringBuilder class. + + + + + The default "stub" (i.e. placeholder) base schema name to use when + returning column schema information. Used as the initial value of + the BaseSchemaName property. This should start with "sqlite_*" + because those names are reserved for use by SQLite (i.e. they cannot + be confused with the names of user objects). + + + + + The managed assembly containing this type. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + Static variable to store the connection event handlers to call. + + + + + The extra connection flags to be used for all opened connections. + + + + + The instance (for this thread) that + had the most recent call to . + + + + + Used to hold the number of times the event + should have been fired. + + + + + Used to hold the number of times the event + should have been skipped. + + + + + State of the current connection + + + + + The connection string + + + + + Nesting level of the transactions open on the connection + + + + + Transaction counter for the connection. Currently, this is only used + to build SAVEPOINT names. + + + + + If this flag is non-zero, the method will have + no effect; however, the method will continue to + behave as normal. + + + + + If set, then the connection is currently being disposed. + + + + + The default isolation level for new transactions + + + + + This object is used with lock statements to synchronize access to the + field, below. + + + + + Whether or not the connection is enlisted in a distrubuted transaction + + + + + The per-connection mappings between type names and + values. These mappings override the corresponding global mappings. + + + + + The per-connection mappings between type names and optional callbacks + for parameter binding and value reading. + + + + + The base SQLite object to interop with + + + + + The database filename minus path and extension + + + + + Temporary password storage, emptied after the database has been opened + + + + + This will be non-zero if the "TextPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a NUL-terminated text string. + + + + + This will be non-zero if the "HexPassword" or "TextHexPassword" + connection string properties were used. When this value is non-zero, + will retain treatment of the + password as a hexadecimal encoded string of byte values. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. + + + + + The extra behavioral flags for this connection, if any. See the + enumeration for a list of + possible values. + + + + + The mask of zero or more values that + determine which events may be raised from the + event. + + + + + The cached values for all settings that have been fetched on behalf + of this connection. This cache may be cleared by calling the + method. + + + + + The default database type for this connection. This value will only + be used if the + flag is set. + + + + + The default database type name for this connection. This value will only + be used if the + flag is set. + + + + + The name of the VFS to be used when opening the database connection. + + + + + Default command timeout + + + + + Default command maximum sleep time. + + + + + The default busy timeout to use with the SQLite core library. This is + only used when opening a connection. + + + + + The default wait timeout to use with + method. This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the appropriate + connection flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when opening the database. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + This method attempts to query the flags associated with the database + connection. If the database connection is disposed, the default flags + will be returned. + + + The database connection to query the flags from. + + + The connection flags value. + + + + + This event is raised whenever the database is opened or closed. + + + + + Constructs a new SQLiteConnection object + + + Default constructor + + + + + Initializes the connection with the specified connection string. + + The connection string to use. + + + + Initializes the connection with a pre-existing native connection handle. + This constructor overload is intended to be used only by the private + method. + + + The native connection handle to use. + + + The file name corresponding to the native connection handle. + + + Non-zero if this instance owns the native connection handle and + should dispose of it when it is no longer needed. + + + + + Initializes user-settable properties with their default values. + This method is only intended to be used from the constructor. + + + + + What type of directory are we searching for? + + + + + Initializes the connection with the specified connection string. + + + The connection string to use. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Clones the settings and connection string from an existing connection. If the existing connection is already open, this + function will open its own connection, enumerate any attached databases of the original connection, and automatically + attach to them. + + The connection to copy the settings from. + + + + Attempts to lookup the native handle associated with the connection. An exception will + be thrown if this cannot be accomplished. + + + The connection associated with the desired native handle. + + + The native handle associated with the connection or if it + cannot be determined. + + + + + Attempts to obtain and return the underlying + derived object associated with this connection. This method should only be + used by the thread that created this connection; otherwise, the results are + undefined. + + WARNING: This method is not officially supported for external callers and + should be considered "experimental", even though it is "public". + + + + The underlying derived object associated with + this connection -OR- null if it is unavailable. + + + + + Attempts to create and return the specified built-in implementation + of the interface. If there is + no such built-in implementation, + will be thrown. + + + The short name of the interface + implementation to create. + + + The single argument to pass into the constructor of the + interface implementation to + create, if any. + + + The built-in implementation of the + interface -OR- null if it cannot be created. + + + + + Attempts to determine if events can be + raised. + + + The connection associated with this event, if any. + + + Non-zero if disposal status of the specified connection should + not be considered. + + + Non-zero if events are currently enabled + for the specified connection; otherwise, zero. + + + + + Raises the event. + + + The connection associated with this event. If this parameter is not + null and the specified connection cannot raise events, then the + registered event handlers will not be invoked. + + + A that contains the event data. + + + + + This event is raised when events related to the lifecycle of a + SQLiteConnection object occur. + + + + + This property is used to obtain or set the custom connection pool + implementation to use, if any. Setting this property to null will + cause the default connection pool implementation to be used. + + + + + Creates and returns a new managed database connection handle. This + method is intended to be used by implementations of the + interface only. In theory, it + could be used by other classes; however, that usage is not supported. + + + This must be a native database connection handle returned by the + SQLite core library and it must remain valid and open during the + entire duration of the calling method. + + + The new managed database connection handle or null if it cannot be + created. + + + + + Backs up the database, using the specified database connection as the + destination. + + The destination database connection. + The destination database name. + The source database name. + + The number of pages to copy at a time -OR- a negative value to copy all + pages. When a negative value is used, the + may never be invoked. + + + The method to invoke between each step of the backup process. This + parameter may be null (i.e. no callbacks will be performed). If the + callback returns false -OR- throws an exception, the backup is canceled. + + + The number of milliseconds to sleep after encountering a locking error + during the backup process. A value less than zero means that no sleep + should be performed. + + + + + Clears the per-connection cached settings. + + + The total number of per-connection settings cleared. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for this connection, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by . + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + Clears the per-connection type mappings. + + + The total number of per-connection type mappings cleared. + + + + + Returns the per-connection type mappings. + + + The per-connection type mappings -OR- null if they are unavailable. + + + + + Adds a per-connection type mapping, possibly replacing one or more + that already exist. + + + The case-insensitive database type name (e.g. "MYDATE"). The value + of this parameter cannot be null. Using an empty string value (or + a string value consisting entirely of whitespace) for this parameter + is not recommended. + + + The value that should be associated with the + specified type name. + + + Non-zero if this mapping should be considered to be the primary one + for the specified . + + + A negative value if nothing was done. Zero if no per-connection type + mappings were replaced (i.e. it was a pure add operation). More than + zero if some per-connection type mappings were replaced. + + + + + Clears the per-connection type callbacks. + + + The total number of per-connection type callbacks cleared. + + + + + Attempts to get the per-connection type callbacks for the specified + database type name. + + + The database type name. + + + Upon success, this parameter will contain the object holding the + callbacks for the database type name. Upon failure, this parameter + will be null. + + + Non-zero upon success; otherwise, zero. + + + + + Sets, resets, or clears the per-connection type callbacks for the + specified database type name. + + + The database type name. + + + The object holding the callbacks for the database type name. If + this parameter is null, any callbacks for the database type name + will be removed if they are present. + + + Non-zero if callbacks were set or removed; otherwise, zero. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + + + Attempts to bind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be bound. + + + A object instance that helps implement the + function to be bound. For scalar functions, this corresponds to the + type. For aggregate functions, + this corresponds to the type. For + collation functions, this corresponds to the + type. + + + A object instance that helps implement the + function to be bound. For aggregate functions, this corresponds to the + type. For other callback types, it + is not used and must be null. + + + + + Attempts to unbind the specified object + instance to this connection. + + + The object instance containing + the metadata for the function to be unbound. + + Non-zero if the function was unbound. + + + + This method unbinds all registered (known) functions -OR- all previously + bound user-defined functions from this connection. + + + Non-zero to unbind all registered (known) functions -OR- zero to unbind + all functions currently bound to the connection. + + + Non-zero if all the specified user-defined functions were unbound. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to parse the connection string using the algorithm provided + by the framework itself. This is not applicable when running on the + .NET Compact Framework. + + + Non-zero if names are allowed without values. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Attempts to escape the specified connection string property name or + value in a way that is compatible with the connection string parser. + + + The connection string property name or value to escape. + + + Non-zero if the equals sign is permitted in the string. If this is + zero and the string contains an equals sign, an exception will be + thrown. + + + The original string, with all special characters escaped. If the + original string contains equals signs, they will not be escaped. + Instead, they will be preserved verbatim. + + + + + Builds a connection string from a list of key/value pairs. + + + The list of key/value pairs corresponding to the parameters to be + specified within the connection string. + + + The connection string. Depending on how the connection string was + originally parsed, the returned connection string value may not be + usable in a subsequent call to the method. + + + + + Disposes and finalizes the connection, if applicable. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Creates a clone of the connection. All attached databases and user-defined functions are cloned. If the existing connection is open, the cloned connection + will also be opened. + + + + + + Creates a database file. This just creates a zero-byte file which SQLite + will turn into a database when the file is opened properly. + + The file to create + + + + Raises the state change event when the state of the connection changes + + The new connection state. If this is different + from the previous state, the event is + raised. + The event data created for the raised event, if + it was actually raised. + + + + Determines and returns the fallback default isolation level when one cannot be + obtained from an existing connection instance. + + + The fallback default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + Determines and returns the default isolation level for this connection instance. + + + The default isolation level for this connection instance -OR- + if it cannot be determined. + + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + This parameter is ignored. + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is TRUE, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + OBSOLETE. Creates a new SQLiteTransaction if one isn't already active on the connection. + + When TRUE, SQLite defers obtaining a write lock until a write operation is requested. + When FALSE, a writelock is obtained immediately. The default is false, but in a multi-threaded multi-writer + environment, one may instead choose to lock the database immediately to avoid any possible writer deadlock. + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already active on the connection. + + Supported isolation levels are Serializable, ReadCommitted and Unspecified. + + Unspecified will use the default isolation level specified in the connection string. If no isolation level is specified in the + connection string, Serializable is used. + Serializable transactions are the default. In this mode, the engine gets an immediate lock on the database, and no other threads + may begin a transaction. Other threads may read from the database, but not write. + With a ReadCommitted isolation level, locks are deferred and elevated as needed. It is possible for multiple threads to start + a transaction in ReadCommitted mode, but if a thread attempts to commit a transaction while another thread + has a ReadCommitted lock, it may timeout or cause a deadlock on both threads until both threads' CommandTimeout's are reached. + + Returns a SQLiteTransaction object. + + + + Creates a new if one isn't already + active on the connection. + + Returns the new transaction object. + + + + Forwards to the local function + + Supported isolation levels are Unspecified, Serializable, and ReadCommitted + + + + + This method is not implemented; however, the + event will still be raised. + + + + + + When the database connection is closed, all commands linked to this connection are automatically reset. + + + + + Returns the number of pool entries for the file name associated with this connection. + + + + + Returns the total number of created connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of method calls for all connections. + + + + + Returns the total number of disposed connections. + + + + + Clears the connection pool associated with the connection. Any other active connections using the same database file + will be discarded instead of returned to the pool when they are closed. + + + + + + Clears all connection pools. Any active connections will be discarded instead of sent to the pool when they are closed. + + + + + The connection string containing the parameters for the connection + + + For the complete list of supported connection string properties, + please see . + + + + + Create a new and associate it with this connection. + + Returns a new command object already assigned to this connection. + + + + Forwards to the local function. + + + + + + Attempts to create a new object instance + using this connection and the specified database name. + + + The name of the database for the newly created session. + + + The newly created session -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified raw data. + + + The raw data that contains a change set (or patch set). + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object instance + using this connection and the specified stream. + + + The stream where the raw data that contains a change set (or patch set) + may be read. + + + The stream where the raw data that contains a change set (or patch set) + may be written. + + + The flags used to create the change set iterator. + + + The newly created change set -OR- null if it cannot be created. + + + + + Attempts to create a new object + instance using this connection. + + + The newly created change group -OR- null if it cannot be created. + + + + + Returns the data source file name without extension or path. + + + + + Returns the fully qualified path and file name for the currently open + database, if any. + + + + + Returns the string "main". + + + + + Determines if the legacy connection string parser should be used. + + + The connection that will be using the parsed connection string. + + + Non-zero if the legacy connection string parser should be used. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string into component parts using the custom + connection string parser. An exception may be thrown if the syntax + of the connection string is incorrect. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero if names are allowed without values. + + + The list of key/value pairs corresponding to the parameters specified + within the connection string. + + + + + Parses a connection string using the built-in (i.e. framework provided) + connection string parser class and returns the key/value pairs. An + exception may be thrown if the connection string is invalid or cannot be + parsed. When compiled for the .NET Compact Framework, the custom + connection string parser is always used instead because the framework + provided one is unavailable there. + + + The connection that will be using the parsed connection string. + + + The connection string to parse. + + + Non-zero to throw an exception if any connection string values are not of + the type. This is not applicable when running on + the .NET Compact Framework. + + The list of key/value pairs. + + + + Manual distributed transaction enlistment support + + The distributed transaction to enlist in + + + + EXPERIMENTAL -- + Waits for the enlistment associated with this connection to be reset. + This method always throws when + running on the .NET Compact Framework. + + + The approximate maximum number of milliseconds to wait before timing + out the wait operation. + + + The return value to use if the connection has been disposed; if this + value is null, will be raised + if the connection has been disposed. + + + Non-zero if the enlistment assciated with this connection was reset; + otherwise, zero. It should be noted that this method returning a + non-zero value does not necessarily guarantee that the connection + can enlist in a new transaction (i.e. due to potentical race with + other threads); therefore, callers should generally use try/catch + when calling the method. + + + + + Looks for a key in the array of key/values of the parameter string. If not found, return the specified default value + + The list to look in + The key to find + The default value to return if the key is not found + The value corresponding to the specified key, or the default value if not found. + + + + Attempts to convert the string value to an enumerated value of the specified type. + + The enumerated type to convert the string value to. + The string value to be converted. + Non-zero to make the conversion case-insensitive. + The enumerated value upon success or null upon error. + + + + Attempts to convert an input string into a byte value. + + + The string value to be converted. + + + The number styles to use for the conversion. + + + Upon sucess, this will contain the parsed byte value. + Upon failure, the value of this parameter is undefined. + + + Non-zero upon success; zero on failure. + + + + + Change a limit value for the database. + + + The database limit to change. + + + The new value for the specified limit. + + + The old value for the specified limit -OR- negative one if an error + occurs. + + + + + Change a configuration option value for the database. + + + The database configuration option to change. + + + The new value for the specified configuration option. + + + + + Enables or disables extension loading. + + + True to enable loading of extensions, false to disable. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + + + Loads a SQLite extension library from the named dynamic link library file. + + + The name of the dynamic link library file containing the extension. + + + The name of the exported function used to initialize the extension. + If null, the default "sqlite3_extension_init" will be used. + + + + + Creates a disposable module containing the implementation of a virtual + table. + + + The module object to be used when creating the disposable module. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + Creates and returns a string containing the hexadecimal encoded byte + values from the input array. + + + The input array of bytes. + + + The resulting string or null upon failure. + + + + + Parses a string containing a sequence of zero or more hexadecimal + encoded byte values and returns the resulting byte array. The + "0x" prefix is not allowed on the input string. + + + The input string containing zero or more hexadecimal encoded byte + values. + + + When zero, byte values of zero are not allowed and will be changed + to instead. + + + Upon failure, this will contain an appropriate error message. + + + A byte array containing the parsed byte values or null if an error + was encountered. + + + + + This method figures out what the default connection pool setting should + be based on the connection flags. When present, the "Pooling" connection + string property value always overrides the value returned by this method. + + + Non-zero if the connection pool should be enabled by default; otherwise, + zero. + + + + + Determines the transaction isolation level that should be used by + the caller, primarily based upon the one specified by the caller. + If mapping of transaction isolation levels is enabled, the returned + transaction isolation level may be significantly different than the + originally specified one. + + + The originally specified transaction isolation level. + + + The transaction isolation level that should be used. + + + + + Gets or sets the callback method that can be used to provide a + connection string password when one is NOT already specified in + the connection string itself. + + + + + Attempts to serialize the specified (or default) + of the current database and + returns the resulting byte array. + + + The name of the database schema (e.g. "main") to attempt to + serialize. This parameter may be null. + + + The raw database bytes, which may later be passed to the + method. + + + + + Attempts to deserialize into the specified (or default) + of the current database, based + on the raw database bytes, and + then makes the resulting in-memory database accessible. + + + The name of the schema to deserialize the raw database + bytes into. + + + The raw database bytes. This parameter must have been + obtained form the method -AND- + may not be null. + + + Non-zero if the resulting in-memory database should be + read-only. + + + + + Opens the connection using the parameters found in the . + + + + + Opens the connection using the parameters found in the and then returns it. + + The current connection object. + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + This can also be set in the ConnectionString with "Default Timeout" + + + + + Gets/sets the default maximum sleep time for newly-created commands. + This can also be set in the ConnectionString with "DefaultMaximumSleepTime" + + + + + Gets/sets the default busy timeout to use with the SQLite core library. This is only used when + opening a connection. + + + + + EXPERIMENTAL -- + The wait timeout to use with method. + This is only used when waiting for the enlistment to be reset prior to + enlisting in a transaction, and then only when the appropriate connection + flag is set. + + + + + The maximum number of retries when preparing SQL to be executed. This + normally only applies to preparation errors resulting from the database + schema being changed. + + + + + The maximum number of retries when stepping SQL to be executed. This + normally only applies to stepping errors resulting from the database + being locked. + + + + + The approximate number of virtual machine instructions between progress + events. In order for progress events to actually fire, the event handler + must be added to the event as + well. This value will only be used when the underlying native progress + callback needs to be changed. + + + + + Non-zero if the built-in (i.e. framework provided) connection string + parser should be used when opening the connection. + + + + + Gets/sets the extra behavioral flags for this connection. See the + enumeration for a list of + possible values. + + + + + Gets/sets the default database type for this connection. This value + will only be used when not null. + + + + + Gets/sets the default database type name for this connection. This + value will only be used when not null. + + + + + Gets/sets the VFS name for this connection. This value will only be + used when opening the database. + + + + + Returns non-zero if the underlying native connection handle is + owned by this instance. + + + + + Returns the version of the underlying SQLite database engine + + + + + Returns the rowid of the most recent successful INSERT into the database from this connection. + + + + + This method causes any pending database operation to abort and return at + its earliest opportunity. This routine is typically called in response + to a user action such as pressing "Cancel" or Ctrl-C where the user wants + a long query operation to halt immediately. It is safe to call this + routine from any thread. However, it is not safe to call this routine + with a database connection that is closed or might close before this method + returns. + + + + + This method checks if the database operation for this connection has been + interrupted. + + + Non-zero if the database operation for this connection has been interrupted; + otherwise, zero. + + + + + Returns the number of rows changed by the last INSERT, UPDATE, or DELETE statement executed on + this connection. + + + + + Checks if this connection to the specified database should be considered + read-only. An exception will be thrown if the database name specified + via cannot be found. + + + The name of a database associated with this connection -OR- null for the + main database. + + + Non-zero if this connection to the specified database should be considered + read-only. + + + + + Returns non-zero if the given database connection is in autocommit mode. + Autocommit mode is on by default. Autocommit mode is disabled by a BEGIN + statement. Autocommit mode is re-enabled by a COMMIT or ROLLBACK. + + + + + Returns the amount of memory (in bytes) currently in use by the SQLite core library. + + + + + Returns the maximum amount of memory (in bytes) used by the SQLite core library since the high-water mark was last reset. + + + + + Returns various global memory statistics for the SQLite core library via + a dictionary of key/value pairs. Currently, only the "MemoryUsed" and + "MemoryHighwater" keys are returned and they have values that correspond + to the values that could be obtained via the + and connection properties. + + + This dictionary will be populated with the global memory statistics. It + will be created if necessary. + + + + + Attempts to free as much heap memory as possible for this database connection. + + + + + Attempts to free N bytes of heap memory by deallocating non-essential memory + allocations held by the database library. Memory used to cache database pages + to improve performance is an example of non-essential memory. This is a no-op + returning zero if the SQLite core library was not compiled with the compile-time + option SQLITE_ENABLE_MEMORY_MANAGEMENT. Optionally, attempts to reset and/or + compact the Win32 native heap, if applicable. + + + The requested number of bytes to free. + + + Non-zero to attempt a heap reset. + + + Non-zero to attempt heap compaction. + + + The number of bytes actually freed. This value may be zero. + + + This value will be non-zero if the heap reset was successful. + + + The size of the largest committed free block in the heap, in bytes. + This value will be zero unless heap compaction is enabled. + + + A standard SQLite return code (i.e. zero for success and non-zero + for failure). + + + + + Sets the status of the memory usage tracking subsystem in the SQLite core library. By default, this is enabled. + If this is disabled, memory usage tracking will not be performed. This is not really a per-connection value, it is + global to the process. + + Non-zero to enable memory usage tracking, zero otherwise. + A standard SQLite return code (i.e. zero for success and non-zero for failure). + + + + Returns a string containing the list of unified define constants + (i.e. compile-time options) used to compile the core managed and + interop assemblies, delimited with spaces. + + + + + Returns the version of the underlying SQLite core library. + + + + + This method returns the string whose value is the same as the + SQLITE_SOURCE_ID C preprocessor macro used when compiling the + SQLite core library. + + + + + Returns a string containing the compile-time options used to + compile the SQLite core native library, delimited with spaces. + + + + + This method returns the version of the interop SQLite assembly + used. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the interop + assembly. If the SQLite interop assembly is not in use or the + necessary information cannot be obtained for any reason, a null + value may be returned. + + + + + Returns a string containing the compile-time options used to + compile the SQLite interop assembly, delimited with spaces. + + + + + This method returns the version of the managed components used + to interact with the SQLite core library. If the necessary + information cannot be obtained for any reason, a null value may + be returned. + + + + + This method returns the string whose value contains the unique + identifier for the source checkout used to build the managed + components currently executing. If the necessary information + cannot be obtained for any reason, a null value may be returned. + + + + + Returns a string containing the define constants (i.e. compile-time + options) used to compile the core managed assembly, delimited with + spaces. + + + + + Queries and returns the value of the specified setting, using the + cached setting names and values for the last connection that used + the method, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the cached setting is stored here if found; otherwise, + the value of is stored here. + + + Non-zero if the cached setting was found; otherwise, zero. + + + + + Adds or sets the cached setting specified by + to the value specified by using the cached + setting names and values for the last connection that used the + method, when available. + + + The name of the cached setting to add or replace. + + + The new value of the cached setting. + + + + + The default connection flags to be used for all opened connections + when they are not present in the connection string. + + + + + The extra connection flags to be used for all opened connections. + + + + + Gets or sets an arbitrary data ("tag") associated with this connection instance. + + + + + Returns the state of the connection. + + + + + Passes a shutdown request to the SQLite core library. Does not throw + an exception if the shutdown request fails. + + + A standard SQLite return code (i.e. zero for success and non-zero for + failure). + + + + + Passes a shutdown request to the SQLite core library. Throws an + exception if the shutdown request fails and the no-throw parameter + is non-zero. + + + Non-zero to reset the database and temporary directories to their + default values, which should be null for both. + + + When non-zero, throw an exception if the shutdown request fails. + + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Enables or disables extended result codes returned by SQLite + + + Add a log message via the SQLite sqlite3_log interface. + + + Add a log message via the SQLite sqlite3_log interface. + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Attempts to decrypt a database file that was encrypted using the + legacy CryptoAPI-based (RC4) codec that was previously included with + System.Data.SQLite. + + + The fully qualified name of the (legacy) encrypted database file. + + + The array of UTF-8 encoded bytes that corresponds to the original string password for + the (legacy) encrypted database file. + + + The optional page size for both the legacy encrypted database file and the decrypted + database file. The value of this parameter may be null. When null, the database page + size should be detected automatically. + + + The optional event handler to use for the internal connection + created during the decryption process. The value of this parameter may be null. + + + The fully qualified name of the newly decrypted database file, which will exist in the + same directory as the original legacy encrypted database file. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Change the password (or assign a password) to the open database. + + + No readers or writers may be active for this process. The database + must already be open and if it already was password protected, the + existing password must already have been supplied. + + + The new password to assign to the open database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + + WARNING: This method always throws an exception unless the library + has been built with encryption support. + + Sets existing password for a closed password-protected database. + Password-protected databases are unusable for any other operation + until the password has been set. Generally, this is accomplished + via setting one of the "*Password" connection string properties, + because it must be done prior to opening the database. + + + The password for the database. + + + + + Queries or modifies the number of retries or the retry interval (in milliseconds) for + certain I/O operations that may fail due to anti-virus software. + + The number of times to retry the I/O operation. A negative value + will cause the current count to be queried and replace that negative value. + The number of milliseconds to wait before retrying the I/O + operation. This number is multiplied by the number of retry attempts so far to come + up with the final number of milliseconds to wait. A negative value will cause the + current interval to be queried and replace that negative value. + Zero for success, non-zero for error. + + + + Sets the chunk size for the primary file associated with this database + connection. + + + The new chunk size for the main database, in bytes. + + + Zero for success, non-zero for error. + + + + + Removes one set of surrounding single -OR- double quotes from the string + value and returns the resulting string value. If the string is null, empty, + or contains quotes that are not balanced, nothing is done and the original + string value will be returned. + + The string value to process. + + The string value, modified to remove one set of surrounding single -OR- + double quotes, if applicable. + + + + + Determines the directory to be used when dealing with the "|DataDirectory|" + macro in a database file name. + + + The directory to use in place of the "|DataDirectory|" macro -OR- null if it + cannot be determined. + + + + + Expand the filename of the data source, resolving the |DataDirectory| + macro as appropriate. + + The database filename to expand + + Non-zero if the returned file name should be converted to a full path + (except when using the .NET Compact Framework). + + The expanded path and filename of the filename + + + + The following commands are used to extract schema information out of the database. Valid schema types are: + + + MetaDataCollections + + + DataSourceInformation + + + Catalogs + + + Columns + + + ForeignKeys + + + Indexes + + + IndexColumns + + + Tables + + + Views + + + ViewColumns + + + + + Returns the MetaDataCollections schema + + A DataTable of the MetaDataCollections schema + + + + Returns schema information of the specified collection + + The schema collection to retrieve + A DataTable of the specified collection + + + + Retrieves schema information using the specified constraint(s) for the specified collection + + The collection to retrieve. + + The restrictions to impose. Typically, this may include: + + + restrictionValues element index + usage + + + 0 + The database (or catalog) name, if applicable. + + + 1 + The schema name. This is not used by this provider. + + + 2 + The table name, if applicable. + + + 3 + + Depends on . + When "IndexColumns", it is the index name; otherwise, it is the column name. + + + + 4 + + Depends on . + When "IndexColumns", it is the column name; otherwise, it is not used. + + + + + A DataTable of the specified collection + + + + Builds a MetaDataCollections schema datatable + + DataTable + + + + Builds a DataSourceInformation datatable + + DataTable + + + + Build a Columns schema + + The catalog (attached database) to query, can be null + The table to retrieve schema information for, can be null + The column to retrieve schema information for, can be null + DataTable + + + + Returns index information for the given database and catalog + + The catalog (attached database) to query, can be null + The name of the index to retrieve information for, can be null + The table to retrieve index information for, can be null + DataTable + + + + Retrieves table schema information for the database and catalog + + The catalog (attached database) to retrieve tables on + The table to retrieve, can be null + The table type, can be null + DataTable + + + + Retrieves view schema information for the database + + The catalog (attached database) to retrieve views on + The view name, can be null + DataTable + + + + Retrieves catalog (attached databases) schema information for the database + + The catalog to retrieve, can be null + DataTable + + + + Returns the base column information for indexes in a database + + The catalog to retrieve indexes for (can be null) + The table to restrict index information by (can be null) + The index to restrict index information by (can be null) + The source column to restrict index information by (can be null) + A DataTable containing the results + + + + Returns detailed column information for a specified view + + The catalog to retrieve columns for (can be null) + The view to restrict column information by (can be null) + The source column to restrict column information by (can be null) + A DataTable containing the results + + + + Retrieves foreign key information from the specified set of filters + + An optional catalog to restrict results on + An optional table to restrict results on + An optional foreign key name to restrict results on + A DataTable with the results of the query + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the database operation will be retried or stopped. For the + entire duration of the event, the associated connection and statement + objects must not be modified, either directly or indirectly, by the + called code. + + + + + This event is raised periodically during long running queries. Changing + the value of the property will + determine if the operation in progress will continue or be interrupted. + For the entire duration of the event, the associated connection and + statement objects must not be modified, either directly or indirectly, by + the called code. + + + + + This event is raised whenever SQLite encounters an action covered by the + authorizer during query preparation. Changing the value of the + property will determine if + the specific action will be allowed, ignored, or denied. For the entire + duration of the event, the associated connection and statement objects + must not be modified, either directly or indirectly, by the called code. + + + + + This event is raised whenever SQLite makes an update/delete/insert into the database on + this connection. It only applies to the given connection. + + + + + This event is raised whenever SQLite is committing a transaction. + Return non-zero to trigger a rollback. + + + + + This event is raised whenever SQLite statement first begins executing on + this connection. It only applies to the given connection. + + + + + This event is raised when events matching the configured mask are + raised for this connection. + + + + + This property is used to configure the set of events that may be raised + from the event. The value of this property cannot + be changed while an event handler is registered. + + + + + This event is raised whenever SQLite is rolling back a transaction. + + + + + Returns the instance. + + + + + The I/O file cache flushing behavior for the connection + + + + + Normal file flushing at critical sections of the code + + + + + Full file flushing after every write operation + + + + + Use the default operating system's file flushing, SQLite does not explicitly flush the file buffers after writing + + + + + + The connection performing the operation. + A that contains the event + data. + + + + Raised each time the number of virtual machine instructions is + approximately equal to the value of the + property. + + The connection performing the operation. + A that contains the + event data. + + + + Raised when authorization is required to perform an action contained + within a SQL query. + + The connection performing the action. + A that contains the + event data. + + + + Raised when a transaction is about to be committed. To roll back a transaction, set the + rollbackTrans boolean value to true. + + The connection committing the transaction + Event arguments on the transaction + + + + Raised when data is inserted, updated and deleted on a given connection + + The connection committing the transaction + The event parameters which triggered the event + + + + Raised when a statement first begins executing on a given connection + + The connection executing the statement + Event arguments of the trace + + + + Raised between each backup step. + + + The source database connection. + + + The source database name. + + + The destination database connection. + + + The destination database name. + + + The number of pages copied with each step. + + + The number of pages remaining to be copied. + + + The total number of pages in the source database. + + + Set to true if the operation needs to be retried due to database + locking issues; otherwise, set to false. + + + True to continue with the backup process or false to halt the backup + process, rolling back any changes that have been made so far. + + + + + The event data associated with "database is busy" events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The number of times the current database operation has been retried + so far. + + + + + The return code for the current call into the busy callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The number of times the current database operation has been retried + so far. + + + The busy return code. + + + + + The event data associated with progress reporting events. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The return code for the current call into the progress callback. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The progress return code. + + + + + The data associated with a call into the authorizer. + + + + + The user-defined native data associated with this event. Currently, + this will always contain the value of . + + + + + The action code responsible for the current call into the authorizer. + + + + + The first string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The second string argument for the current call into the authorizer. + The exact value will vary based on the action code, see the + enumeration for possible + values. + + + + + The database name for the current call into the authorizer, if + applicable. + + + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + + + The return code for the current call into the authorizer. + + + + + Constructs an instance of this class with default property values. + + + + + Constructs an instance of this class with specific property values. + + + The user-defined native data associated with this event. + + + The authorizer action code. + + + The first authorizer argument. + + + The second authorizer argument. + + + The database name, if applicable. + + + The name of the inner-most trigger or view that is responsible for + the access attempt or a null value if this access attempt is directly + from top-level SQL code. + + + The authorizer return code. + + + + + Whenever an update event is triggered on a connection, this enum will indicate + exactly what type of operation is being performed. + + + + + A row is being deleted from the given database and table + + + + + A row is being inserted into the table. + + + + + A row is being updated in the table. + + + + + Passed during an Update callback, these event arguments detail the type of update operation being performed + on the given connection. + + + + + The name of the database being updated (usually "main" but can be any attached or temporary database) + + + + + The name of the table being updated + + + + + The type of update being performed (insert/update/delete) + + + + + The RowId affected by this update. + + + + + Event arguments raised when a transaction is being committed + + + + + Set to true to abort the transaction and trigger a rollback + + + + + Passed during an Trace callback, these event arguments contain the UTF-8 rendering of the SQL statement text + + + + + The flags associated with this trace event. + + + + + Database connection associated with this event. + + + + + Prepared statement associated with this event. + + + + + SQL statement text as the statement first begins executing + + + + + Elapsed time in nanoseconds associated with the prepared statement. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This interface represents a custom connection pool implementation + usable by System.Data.SQLite. + + + + + Initialize the connection pool. + + + Optional single argument used during the connection pool + initialization process. + + + + + Terminate the connection pool. + + + Optional single argument used during the connection pool + termination process. + + + + + Gets the total number of connections successfully opened and + closed from any pool. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + + + Resets the total number of connections successfully opened and + closed from any pool to zero. + + + + + This class implements a connection pool using the built-in static + method implementations. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This class implements a naive connection pool where the underlying + connections are never disposed automatically. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + Keeps track of connections made on a specified file. The PoolVersion + dictates whether old objects get returned to the pool or discarded + when no longer in use. + + + + + The queue of weak references to the actual database connection + handles. + + + + + This pool version associated with the database connection + handles in this pool queue. + + + + + The maximum size of this pool queue. + + + + + Constructs a connection pool queue using the specified version + and maximum size. Normally, all the database connection + handles in this pool are associated with a single database file + name. + + + The initial pool version for this connection pool queue. + + + The initial maximum size for this connection pool queue. + + + + + This default method implementations in this class should not be used by + applications that make use of COM (either directly or indirectly) due + to possible deadlocks that can occur during finalization of some COM + objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + When this field is non-null, it will be used to provide the + implementation of all the connection pool methods; otherwise, + the default method implementations will be used. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + This method is used to obtain a reference to the custom connection + pool implementation currently in use, if any. + + + The custom connection pool implementation or null if the default + connection pool implementation should be used. + + + + + This method is used to set the reference to the custom connection + pool implementation to use, if any. + + + The custom connection pool implementation to use or null if the + default connection pool implementation should be used. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + This default method implementations in this class should not be used + by applications that make use of COM (either directly or indirectly) + due to possible deadlocks that can occur during finalization of some + COM objects. + + + + + This field is used to synchronize access to the private static + data in this class. + + + + + The dictionary of connection pools, based on the normalized file + name of the SQLite database. + + + + + The default version number new pools will get. + + + + + The number of connections successfully opened from any pool. + This value is incremented by the Remove method. + + + + + The number of connections successfully closed from any pool. + This value is incremented by the Add method. + + + + + Counts the number of pool entries matching the specified file name. + + + The file name to match or null to match all files. + + + The pool entry counts for each matching file. + + + The total number of connections successfully opened from any pool. + + + The total number of connections successfully closed from any pool. + + + The total number of pool entries for all matching files. + + + + + Disposes of all pooled connections associated with the specified + database file name. + + + The database file name. + + + + + Disposes of all pooled connections. + + + + + Adds a connection to the pool of those associated with the + specified database file name. + + + The database file name. + + + The database connection handle. + + + The connection pool version at the point the database connection + handle was received from the connection pool. This is also the + connection pool version that the database connection handle was + created under. + + + + + Removes a connection from the pool of those associated with the + specified database file name with the intent of using it to + interact with the database. + + + The database file name. + + + The new maximum size of the connection pool for the specified + database file name. + + + The connection pool version associated with the returned database + connection handle, if any. + + + The database connection handle associated with the specified + database file name or null if it cannot be obtained. + + + + + We do not have to thread-lock anything in this function, because + it is only called by other functions above which already take the + lock. + + + The pool queue to resize. + + + If a function intends to add to the pool, this is true, which + forces the resize to take one more than it needs from the pool. + + + + + SQLite implementation of DbConnectionStringBuilder. + + + + + Properties of this class + + + + + Constructs a new instance of the class + + + Default constructor + + + + + Constructs a new instance of the class using the specified connection string. + + The connection string to parse + + + + Private initializer, which assigns the connection string and resets the builder + + The connection string to assign + + + + Gets/Sets the default version of the SQLite engine to instantiate. Currently the only valid value is 3, indicating version 3 of the sqlite library. + + + + + Gets/Sets the synchronization mode (file flushing) of the connection string. Default is "Normal". + + + + + Gets/Sets the encoding for the connection string. The default is "False" which indicates UTF-8 encoding. + + + + + Gets/Sets whether or not to use connection pooling. The default is "False" + + + + + Gets/Sets whethor not to store GUID's in binary format. The default is True + which saves space in the database. + + + + + Gets/Sets the filename to open on the connection string. + + + + + An alternate to the data source property + + + + + An alternate to the data source property that uses the SQLite URI syntax. + + + + + Gets/sets the default command timeout for newly-created commands. This is especially useful for + commands used internally such as inside a SQLiteTransaction, where setting the timeout is not possible. + + + + + Gets/sets the default maximum sleep time for newly-created commands. + + + + + Gets/sets the busy timeout to use with the SQLite core library. + + + + + EXPERIMENTAL -- + The wait timeout to use with + method. + This is only used when waiting for the enlistment to be reset + prior to enlisting in a transaction, and then only when the + appropriate connection flag is set. + + + + + Gets/sets the maximum number of retries when preparing SQL to be executed. + This normally only applies to preparation errors resulting from the database + schema being changed. + + + + + Gets/sets the maximum number of retries when stepping SQL to be executed. + This normally only applies to stepping errors resulting from the database + being locked. + + + + + Gets/sets the approximate number of virtual machine instructions between + progress events. In order for progress events to actually fire, the event + handler must be added to the event + as well. + + + + + Determines whether or not the connection will automatically participate + in the current distributed transaction (if one exists) + + + + + If set to true, will throw an exception if the database specified in the connection + string does not exist. If false, the database will be created automatically. + + + + + If enabled, uses the legacy 3.xx format for maximum compatibility, but results in larger + database sizes. + + + + + When enabled, the database will be opened for read-only access and writing will be disabled. + + + + + Gets/sets the database encryption password + + + + + Gets/sets the database encryption hexadecimal password + + + + + Gets/sets the database encryption textual password + + + + + Gets/sets the database encryption textual password in hexadecimal + + + + + Gets/Sets the page size for the connection. + + + + + Gets/Sets the maximum number of pages the database may hold + + + + + Gets/Sets the cache size for the connection. + + + + + Gets/Sets the DateTime format for the connection. + + + + + Gets/Sets the DateTime kind for the connection. + + + + + Gets/sets the DateTime format string used for formatting + and parsing purposes. + + + + + Gets/Sets the placeholder base schema name used for + .NET Framework compatibility purposes. + + + + + Determines how SQLite handles the transaction journal file. + + + + + Sets the default isolation level for transactions on the connection. + + + + + Gets/sets the default database type for the connection. + + + + + Gets/sets the default type name for the connection. + + + + + Gets/sets the VFS name for the connection. + + + + + If enabled, use foreign key constraints + + + + + Enable or disable the recursive trigger capability. + + + + + If non-null, this is the version of ZipVFS to use. This requires the + System.Data.SQLite interop assembly -AND- primary managed assembly to + be compiled with the INTEROP_INCLUDE_ZIPVFS option; otherwise, this + property does nothing. + + + + + Gets/Sets the extra behavioral flags. + + + + + If enabled, apply the default connection settings to opened databases. + + + + + If enabled, attempt to resolve the provided data source file name to a + full path before opening. + + + + + If enabled, skip using the configured default connection flags. + + + + + If enabled, skip using the configured shared connection flags. + + + + + Helper function for retrieving values from the connectionstring + + The keyword to retrieve settings for + The resulting parameter value + Returns true if the value was found and returned + + + + Fallback method for MONO, which doesn't implement DbConnectionStringBuilder.GetProperties() + + The hashtable to fill with property descriptors + + + + This base class provides datatype conversion services for the SQLite provider. + + + + + This character is used to escape other characters, including itself, in + connection string property names and values. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + This character can be used to wrap connection string property names and + values. Normally, it is optional; however, when used, it must be the + first -AND- last character of that connection string property name -OR- + value. + + + + + The character is used to separate the name and value for a connection + string property. This character cannot be present in any connection + string property name. This character can be present in a connection + string property value; however, this should be avoided unless deemed + absolutely necessary. + + + + + This character is used to separate connection string properties. When + the "No_SQLiteConnectionNewParser" setting is enabled, this character + may not appear in connection string property names -OR- values. + + + + + These are the characters that are special to the connection string + parser. + + + + + The fallback default database type when one cannot be obtained from an + existing connection instance. + + + + + The fallback default database type name when one cannot be obtained from + an existing connection instance. + + + + + The value for the Unix epoch (e.g. January 1, 1970 at midnight, in UTC). + + + + + The value of the OLE Automation epoch represented as a Julian day. This + field cannot be removed as the test suite relies upon it. + + + + + The format string for DateTime values when using the InvariantCulture or CurrentCulture formats. + + + + + This is the minimum Julian Day value supported by this library + (148731163200000). + + + + + This is the maximum Julian Day value supported by this library + (464269060799000). + + + + + An array of ISO-8601 DateTime formats that we support parsing. + + + + + The internal default format for UTC DateTime values when converting + to a string. + + + + + The internal default format for local DateTime values when converting + to a string. + + + + + An UTF-8 Encoding instance, so we can convert strings to and from UTF-8 + + + + + The default DateTime format for this instance. + + + + + The default DateTimeKind for this instance. + + + + + The default DateTime format string for this instance. + + + + + Initializes the conversion class + + The default date/time format to use for this instance + The DateTimeKind to use. + The DateTime format string to use. + + + + Converts a string to a UTF-8 encoded byte array sized to include a null-terminating character. + + The string to convert to UTF-8 + A byte array containing the converted string plus an extra 0 terminating byte at the end of the array. + + + + Convert a DateTime to a UTF-8 encoded, zero-terminated byte array. + + + This function is a convenience function, which first calls ToString() on the DateTime, and then calls ToUTF8() with the + string result. + + The DateTime to convert. + The UTF-8 encoded string, including a 0 terminating byte at the end of the array. + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Converts a UTF-8 encoded IntPtr of the specified length into a .NET string + + The pointer to the memory where the UTF-8 string is encoded + The number of bytes to decode + A string containing the translated character(s) + + + + Checks if the specified is within the + supported range for a Julian Day value. + + + The Julian Day value to check. + + + Non-zero if the specified Julian Day value is in the supported + range; otherwise, zero. + + + + + Converts a Julian Day value from a to an + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value from an to a + . + + + The Julian Day value to convert. + + + The resulting Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeYMD" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day is out of the supported range. If this value is null, + an exception will be thrown instead. + + + A value that contains the year, month, and + day values that are closest to the specified Julian Day value. + + + + + Converts a Julian Day value to a . + This method was translated from the "computeHMS" function in the + "date.c" file belonging to the SQLite core library. + + + The Julian Day value to convert. + + + The value to return in the event that the + Julian Day value is out of the supported range. If this value is + null, an exception will be thrown instead. + + + A value that contains the hour, minute, and + second, and millisecond values that are closest to the specified + Julian Day value. + + + + + Converts a to a Julian Day value. + This method was translated from the "computeJD" function in + the "date.c" file belonging to the SQLite core library. + Since the range of Julian Day values supported by this method + includes all possible (valid) values of a + value, it should be extremely difficult for this method to + raise an exception or return an undefined result. + + + The value to convert. This value + will be within the range of + (00:00:00.0000000, January 1, 0001) to + (23:59:59.9999999, December + 31, 9999). + + + The nearest Julian Day value corresponding to the specified + value. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + A DateTime value + + + + Converts a string into a DateTime, using the specified DateTimeFormat, + DateTimeKind and DateTimeFormatString. + + + Acceptable ISO8601 DateTime formats are: + + THHmmssK + THHmmK + HH:mm:ss.FFFFFFFK + HH:mm:ssK + HH:mmK + yyyy-MM-dd HH:mm:ss.FFFFFFFK + yyyy-MM-dd HH:mm:ssK + yyyy-MM-dd HH:mmK + yyyy-MM-ddTHH:mm:ss.FFFFFFFK + yyyy-MM-ddTHH:mmK + yyyy-MM-ddTHH:mm:ssK + yyyyMMddHHmmssK + yyyyMMddHHmmK + yyyyMMddTHHmmssFFFFFFFK + THHmmss + THHmm + HH:mm:ss.FFFFFFF + HH:mm:ss + HH:mm + yyyy-MM-dd HH:mm:ss.FFFFFFF + yyyy-MM-dd HH:mm:ss + yyyy-MM-dd HH:mm + yyyy-MM-ddTHH:mm:ss.FFFFFFF + yyyy-MM-ddTHH:mm + yyyy-MM-ddTHH:mm:ss + yyyyMMddHHmmss + yyyyMMddHHmm + yyyyMMddTHHmmssFFFFFFF + yyyy-MM-dd + yyyyMMdd + yy-MM-dd + + If the string cannot be matched to one of the above formats -OR- + the DateTimeFormatString if one was provided, an exception will + be thrown. + + The string containing either a long integer number of 100-nanosecond units since + System.DateTime.MinValue, a Julian day double, an integer number of seconds since the Unix epoch, a + culture-independent formatted date and time string, a formatted date and time string in the current + culture, or an ISO8601-format string. + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + A DateTime value + + + + Converts a julianday value into a DateTime + + The value to convert + A .NET DateTime + + + + Converts a julianday value into a DateTime + + The value to convert + The DateTimeKind to use. + A .NET DateTime + + + + Converts the specified number of seconds from the Unix epoch into a + value. + + + The number of whole seconds since the Unix epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts the specified number of ticks since the epoch into a + value. + + + The number of whole ticks since the epoch. + + + Either Utc or Local time. + + + The new value. + + + + + Converts a DateTime struct to a JulianDay double + + The DateTime to convert + The JulianDay value the Datetime represents + + + + Converts a DateTime struct to the whole number of seconds since the + Unix epoch. + + The DateTime to convert + The whole number of seconds since the Unix epoch + + + + Returns the DateTime format string to use for the specified DateTimeKind. + If is not null, it will be returned verbatim. + + The DateTimeKind to use. + The DateTime format string to use. + + The DateTime format string to use for the specified DateTimeKind. + + + + + Build list-formatted string from a list of string elements. + + + The list of strings to process. + + + Non-zero if this method should avoid returning a null value + when the input list is null. + + + Either the list-formatted string -OR- null if it cannot be + determined. + + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Converts a string into a DateTime, using the DateTimeFormat, DateTimeKind, + and DateTimeFormatString specified for the connection when it was opened. + + The DateTime value to convert + The SQLiteDateFormats to use. + The DateTimeKind to use. + The DateTime format string to use. + Either a string containing the long integer number of 100-nanosecond units since System.DateTime.MinValue, a + Julian day double, an integer number of seconds since the Unix epoch, a culture-independent formatted date and time + string, a formatted date and time string in the current culture, or an ISO8601-format date/time string. + + + + Internal function to convert a UTF-8 encoded IntPtr of the specified length to a DateTime. + + + This is a convenience function, which first calls ToString() on the IntPtr to convert it to a string, then calls + ToDateTime() on the string to return a DateTime. + + A pointer to the UTF-8 encoded string + The length in bytes of the string + The parsed DateTime value + + + + Smart method of splitting a string. Skips quoted elements, removes the quotes. + + + This split function works somewhat like the String.Split() function in that it breaks apart a string into + pieces and returns the pieces as an array. The primary differences are: + + Only one character can be provided as a separator character + Quoted text inside the string is skipped over when searching for the separator, and the quotes are removed. + + Thus, if splitting the following string looking for a comma:
+ One,Two, "Three, Four", Five
+
+ The resulting array would contain
+ [0] One
+ [1] Two
+ [2] Three, Four
+ [3] Five
+
+ Note that the leading and trailing spaces were removed from each item during the split. +
+ Source string to split apart + Separator character + A string array of the split up elements +
+ + + Splits the specified string into multiple strings based on a separator + and returns the result as an array of strings. + + + The string to split into pieces based on the separator character. If + this string is null, null will always be returned. If this string is + empty, an array of zero strings will always be returned. + + + The character used to divide the original string into sub-strings. + This character cannot be a backslash or a double-quote; otherwise, no + work will be performed and null will be returned. + + + If this parameter is non-zero, all double-quote characters will be + retained in the returned list of strings; otherwise, they will be + dropped. + + + Upon failure, this parameter will be modified to contain an appropriate + error message. + + + The new array of strings or null if the input string is null -OR- the + separator character is a backslash or a double-quote -OR- the string + contains an unbalanced backslash or double-quote character. + + + + + Queries and returns the string representation for an object, using the + specified (or current) format provider. + + + The object instance to return the string representation for. + + + The format provider to use -OR- null if the current format provider for + the thread should be used instead. + + + The string representation for the object instance -OR- null if the + object instance is also null. + + + + + Attempts to convert an arbitrary object to the Boolean data type. + Null object values are converted to false. Throws an exception + upon failure. + + + The object value to convert. + + + The format provider to use. + + + If non-zero, a string value will be converted using the + + method; otherwise, the + method will be used. + + + The converted boolean value. + + + + + Convert a value to true or false. + + A string or number representing true or false + + + + + Converts an integer to a string that can be round-tripped using the + invariant culture. + + + The integer value to return the string representation for. + + + The string representation of the specified integer value, using the + invariant culture. + + + + + Attempts to convert a into a . + + + The to convert, cannot be null. + + + The converted value. + + + The supported strings are "yes", "no", "y", "n", "on", "off", "0", "1", + as well as any prefix of the strings + and . All strings are treated in a + case-insensitive manner. + + + + + Converts a SQLiteType to a .NET Type object + + The SQLiteType to convert + Returns a .NET Type object + + + + Attempt to convert the specified to a + suitable for use with this library. + + + The type to convert. + + + Either a specific -OR- the default + (i.e. ) + if a more specific is not matched. + + + + + Returns the ColumnSize for the given DbType + + The DbType to get the size of + + + + + Determines the default database type name to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default database type name to use. + + + + + If applicable, issues a trace log message warning about falling back to + the default database type name. + + + The database value type. + + + The flags associated with the parent connection object. + + + The textual name of the database type. + + + + + If applicable, issues a trace log message warning about falling back to + the default database value type. + + + The textual name of the database type. + + + The flags associated with the parent connection object. + + + The database value type. + + + + + For a given database value type, return the "closest-match" textual database type name. + + The connection context for custom type mappings, if any. + The database value type. + The flags associated with the parent connection object. + The type name or an empty string if it cannot be determined. + + + + Convert a DbType to a Type + + The DbType to convert from + The closest-match .NET type + + + + For a given type, return the closest-match SQLite TypeAffinity, which only understands a very limited subset of types. + + The type to evaluate + The flags associated with the connection. + The SQLite type affinity for that type. + + + + Builds and returns a map containing the database column types + recognized by this provider. + + + A map containing the database column types recognized by this + provider. + + + + + Determines if a database type is considered to be a string. + + + The database type to check. + + + Non-zero if the database type is considered to be a string, zero + otherwise. + + + + + Determines and returns the runtime configuration setting string that + should be used in place of the specified object value. + + + The object value to convert to a string. + + + Either the string to use in place of the object value -OR- null if it + cannot be determined. + + + + + Determines the default value to be used when a + per-connection value is not available. + + + The connection context for type mappings, if any. + + + The default value to use. + + + + + Converts the object value, which is assumed to have originated + from a , to a string value. + + + The value to be converted to a string. + + + A null value will be returned if the original value is null -OR- + the original value is . Otherwise, + the original value will be converted to a string, using its + (possibly overridden) method and + then returned. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be an + value. + + + The textual value to inspect. + + + Non-zero if the text looks like an value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The textual value to inspect. + + + Non-zero if the text looks like a value, + zero otherwise. + + + + + Determines if the specified textual value appears to be a + value. + + + The object instance configured with + the chosen format. + + + The textual value to inspect. + + + Non-zero if the text looks like a in the + configured format, zero otherwise. + + + + + For a given textual database type name, return the "closest-match" database type. + This method is called during query result processing; therefore, its performance + is critical. + + The connection context for custom type mappings, if any. + The textual name of the database type to match. + The flags associated with the parent connection object. + The .NET DBType the text evaluates to. + + + + SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite + understands. The DateTime extension to the spec is for internal use only. + + + + + Not used + + + + + All integers in SQLite default to Int64 + + + + + All floating point numbers in SQLite default to double + + + + + The default data type of SQLite is text + + + + + Typically blob types are only seen when returned from a function + + + + + Null types can be returned from functions + + + + + Used internally by this provider + + + + + Used internally by this provider + + + + + These are the event types associated with the + + delegate (and its corresponding event) and the + class. + + + + + Not used. + + + + + Not used. + + + + + The connection is being opened. + + + + + The connection string has been parsed. + + + + + The connection was opened. + + + + + The method was called on the + connection. + + + + + A transaction was created using the connection. + + + + + The connection was enlisted into a transaction. + + + + + A command was created using the connection. + + + + + A data reader was created using the connection. + + + + + An instance of a derived class has + been created to wrap a native resource. + + + + + The connection is being closed. + + + + + The connection was closed. + + + + + A command is being disposed. + + + + + A data reader is being disposed. + + + + + A data reader is being closed. + + + + + A native resource was opened (i.e. obtained) from the pool. + + + + + A native resource was closed (i.e. released) to the pool. + + + + + The connection is being disposed. + + + + + The connection was disposed. + + + + + The connection is being finalized. + + + + + The connection was finalized. + + + + + The closing of the object had no effect, e.g. because the + underlying resource was not actually allocated or opened. + + + + + The connection string may be changed. + + + + + The SQL string may be changed. + + + + + The method was invoked. + + + + + The is preparing to return + a row of data. + + + + + This implementation of SQLite for ADO.NET can process date/time fields in + databases in one of six formats. + + + ISO8601 format is more compatible, readable, fully-processable, but less + accurate as it does not provide time down to fractions of a second. + JulianDay is the numeric format the SQLite uses internally and is arguably + the most compatible with 3rd party tools. It is not readable as text + without post-processing. Ticks less compatible with 3rd party tools that + query the database, and renders the DateTime field unreadable as text + without post-processing. UnixEpoch is more compatible with Unix systems. + InvariantCulture allows the configured format for the invariant culture + format to be used and is human readable. CurrentCulture allows the + configured format for the current culture to be used and is also human + readable. + + The preferred order of choosing a DateTime format is JulianDay, ISO8601, + and then Ticks. Ticks is mainly present for legacy code support. + + + + + Use the value of DateTime.Ticks. This value is not recommended and is not well supported with LINQ. + + + + + Use the ISO-8601 format. Uses the "yyyy-MM-dd HH:mm:ss.FFFFFFFK" format for UTC DateTime values and + "yyyy-MM-dd HH:mm:ss.FFFFFFF" format for local DateTime values). + + + + + The interval of time in days and fractions of a day since January 1, 4713 BC. + + + + + The whole number of seconds since the Unix epoch (January 1, 1970). + + + + + Any culture-independent string value that the .NET Framework can interpret as a valid DateTime. + + + + + Any string value that the .NET Framework can interpret as a valid DateTime using the current culture. + + + + + The default format for this provider. + + + + + This enum determines how SQLite treats its journal file. + + + By default SQLite will create and delete the journal file when needed during a transaction. + However, for some computers running certain filesystem monitoring tools, the rapid + creation and deletion of the journal file can cause those programs to fail, or to interfere with SQLite. + + If a program or virus scanner is interfering with SQLite's journal file, you may receive errors like "unable to open database file" + when starting a transaction. If this is happening, you may want to change the default journal mode to Persist. + + + + + The default mode, this causes SQLite to use the existing journaling mode for the database. + + + + + SQLite will create and destroy the journal file as-needed. + + + + + When this is set, SQLite will keep the journal file even after a transaction has completed. It's contents will be erased, + and the journal re-used as often as needed. If it is deleted, it will be recreated the next time it is needed. + + + + + This option disables the rollback journal entirely. Interrupted transactions or a program crash can cause database + corruption in this mode! + + + + + SQLite will truncate the journal file to zero-length instead of deleting it. + + + + + SQLite will store the journal in volatile RAM. This saves disk I/O but at the expense of database safety and integrity. + If the application using SQLite crashes in the middle of a transaction when the MEMORY journaling mode is set, then the + database file will very likely go corrupt. + + + + + SQLite uses a write-ahead log instead of a rollback journal to implement transactions. The WAL journaling mode is persistent; + after being set it stays in effect across multiple database connections and after closing and reopening the database. A database + in WAL journaling mode can only be accessed by SQLite version 3.7.0 or later. + + + + + Possible values for the "synchronous" database setting. This setting determines + how often the database engine calls the xSync method of the VFS. + + + + + Use the default "synchronous" database setting. Currently, this should be + the same as using the FULL mode. + + + + + The database engine continues without syncing as soon as it has handed + data off to the operating system. If the application running SQLite + crashes, the data will be safe, but the database might become corrupted + if the operating system crashes or the computer loses power before that + data has been written to the disk surface. + + + + + The database engine will still sync at the most critical moments, but + less often than in FULL mode. There is a very small (though non-zero) + chance that a power failure at just the wrong time could corrupt the + database in NORMAL mode. + + + + + The database engine will use the xSync method of the VFS to ensure that + all content is safely written to the disk surface prior to continuing. + This ensures that an operating system crash or power failure will not + corrupt the database. FULL synchronous is very safe, but it is also + slower. + + + + + The requested command execution type. This controls which method of the + object will be called. + + + + + Do nothing. No method will be called. + + + + + The command is not expected to return a result -OR- the result is not + needed. The or + method + will be called. + + + + + The command is expected to return a scalar result -OR- the result should + be limited to a scalar result. The + or method will + be called. + + + + + The command is expected to return result. + The or + method will + be called. + + + + + Use the default command execution type. Using this value is the same + as using the value. + + + + + The action code responsible for the current call into the authorizer. + + + + + No action is being performed. This value should not be used from + external code. + + + + + No longer used. + + + + + An index will be created. The action-specific arguments are the + index name and the table name. + + + + + + A table will be created. The action-specific arguments are the + table name and a null value. + + + + + A temporary index will be created. The action-specific arguments + are the index name and the table name. + + + + + A temporary table will be created. The action-specific arguments + are the table name and a null value. + + + + + A temporary trigger will be created. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be created. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be created. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be created. The action-specific arguments are the view + name and a null value. + + + + + A DELETE statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + An index will be dropped. The action-specific arguments are the + index name and the table name. + + + + + A table will be dropped. The action-specific arguments are the tables + name and a null value. + + + + + A temporary index will be dropped. The action-specific arguments are + the index name and the table name. + + + + + A temporary table will be dropped. The action-specific arguments are + the table name and a null value. + + + + + A temporary trigger will be dropped. The action-specific arguments + are the trigger name and the table name. + + + + + A temporary view will be dropped. The action-specific arguments are + the view name and a null value. + + + + + A trigger will be dropped. The action-specific arguments are the + trigger name and the table name. + + + + + A view will be dropped. The action-specific arguments are the view + name and a null value. + + + + + An INSERT statement will be executed. The action-specific arguments + are the table name and a null value. + + + + + A PRAGMA statement will be executed. The action-specific arguments + are the name of the PRAGMA and the new value or a null value. + + + + + A table column will be read. The action-specific arguments are the + table name and the column name. + + + + + A SELECT statement will be executed. The action-specific arguments + are both null values. + + + + + A transaction will be started, committed, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + COMMIT, or ROLLBACK) and a null value. + + + + + An UPDATE statement will be executed. The action-specific arguments + are the table name and the column name. + + + + + A database will be attached to the connection. The action-specific + arguments are the database file name and a null value. + + + + + A database will be detached from the connection. The action-specific + arguments are the database name and a null value. + + + + + The schema of a table will be altered. The action-specific arguments + are the database name and the table name. + + + + + An index will be deleted and then recreated. The action-specific + arguments are the index name and a null value. + + + + + A table will be analyzed to gathers statistics about it. The + action-specific arguments are the table name and a null value. + + + + + A virtual table will be created. The action-specific arguments are + the table name and the module name. + + + + + A virtual table will be dropped. The action-specific arguments are + the table name and the module name. + + + + + A SQL function will be called. The action-specific arguments are a + null value and the function name. + + + + + A savepoint will be created, released, or rolled back. The + action-specific arguments are the name of the operation (BEGIN, + RELEASE, or ROLLBACK) and the savepoint name. + + + + + A recursive query will be executed. The action-specific arguments + are two null values. + + + + + The possible return codes for the busy callback. + + + + + Stop invoking the busy callback and return + to the + caller. + + + + + Retry the associated operation and invoke + the busy callback again, if necessary. + + + + + The possible return codes for the progress callback. + + + + + The operation should continue. + + + + + The operation should be interrupted. + + + + + The return code for the current call into the authorizer. + + + + + The action will be allowed. + + + + + The overall action will be disallowed and an error message will be + returned from the query preparation method. + + + + + The specific action will be disallowed; however, the overall action + will continue. The exact effects of this return code vary depending + on the specific action, please refer to the SQLite core library + documentation for futher details. + + + + + Class used internally to determine the datatype of a column in a resultset + + + + + The DbType of the column, or DbType.Object if it cannot be determined + + + + + The affinity of a column, used for expressions or when Type is DbType.Object + + + + + Constructs a default instance of this type. + + + + + Constructs an instance of this type with the specified field values. + + + The type affinity to use for the new instance. + + + The database type to use for the new instance. + + + + + SQLite implementation of DbDataAdapter. + + + + + This class is just a shell around the DbDataAdapter. Nothing from + DbDataAdapter is overridden here, just a few constructors are defined. + + + Default constructor. + + + + + Constructs a data adapter using the specified select command. + + + The select command to associate with the adapter. + + + + + Constructs a data adapter with the supplied select command text and + associated with the specified connection. + + + The select command text to associate with the data adapter. + + + The connection to associate with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + + + Constructs a data adapter with the specified select command text, + and using the specified database connection string. + + + The select command text to use to construct a select command. + + + A connection string suitable for passing to a new SQLiteConnection, + which is associated with the select command. + + + Non-zero to parse the connection string using the built-in (i.e. + framework provided) parser when opening the connection. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + Row updating event handler + + + + + Row updated event handler + + + + + Raised by the underlying DbDataAdapter when a row is being updated + + The event's specifics + + + + Raised by DbDataAdapter after a row is updated + + The event's specifics + + + + Gets/sets the select command for this DataAdapter + + + + + Gets/sets the insert command for this DataAdapter + + + + + Gets/sets the update command for this DataAdapter + + + + + Gets/sets the delete command for this DataAdapter + + + + + SQLite implementation of DbDataReader. + + + + + Underlying command this reader is attached to + + + + + The flags pertaining to the associated connection (via the command). + + + + + Index of the current statement in the command being processed + + + + + Current statement being Read() + + + + + State of the current statement being processed. + -1 = First Step() executed, so the first Read() will be ignored + 0 = Actively reading + 1 = Finished reading + 2 = Non-row-returning statement, no records + + + + + Number of records affected by the insert/update statements executed on the command + + + + + Count of fields (columns) in the row-returning statement currently being processed + + + + + The number of calls to Step() that have returned true (i.e. the number of rows that + have been read in the current result set). + + + + + Maps the field (column) names to their corresponding indexes within the results. + + + + + Datatypes of active fields (columns) in the current statement, used for type-restricting data + + + + + The behavior of the datareader + + + + + If set, then dispose of the command object when the reader is finished + + + + + The SQL command text, broken into individual SQL statements as they are executed + + + + + If set, then raise an exception when the object is accessed after being disposed. + + + + + An array of rowid's for the active statement if CommandBehavior.KeyInfo is specified + + + + + Matches the version of the connection. + + + + + The "stub" (i.e. placeholder) base schema name to use when returning + column schema information. Matches the base schema name used by the + associated connection. + + + + + Internal constructor, initializes the datareader and sets up to begin executing statements + + The SQLiteCommand this data reader is for + The expected behavior of the data reader + + + + Dispose of all resources used by this datareader. + + + + + + Closes the datareader, potentially closing the connection as well if CommandBehavior.CloseConnection was specified. + + + + + Throw an error if the datareader is closed + + + + + Throw an error if a row is not loaded + + + + + Enumerator support + + Returns a DbEnumerator object. + + + + Not implemented. Returns 0 + + + + + Returns the number of columns in the current resultset + + + + + Forces the connection flags cached by this data reader to be refreshed + from the underlying connection. + + + + + Returns the number of rows seen so far in the current result set. + + + + + Returns the number of visible fields in the current resultset + + + + + This method is used to make sure the result set is open and a row is currently available. + + + + + SQLite is inherently un-typed. All datatypes in SQLite are natively strings. The definition of the columns of a table + and the affinity of returned types are all we have to go on to type-restrict data in the reader. + + This function attempts to verify that the type of data being requested of a column matches the datatype of the column. In + the case of columns that are not backed into a table definition, we attempt to match up the affinity of a column (int, double, string or blob) + to a set of known types that closely match that affinity. It's not an exact science, but its the best we can do. + + + This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. + + The index of the column to type-check + The type we want to get out of the column + + + + Invokes the data reader value callback configured for the database + type name associated with the specified column. If no data reader + value callback is available for the database type name, do nothing. + + + The index of the column being read. + + + The extra event data to pass into the callback. + + + Non-zero if the default handling for the data reader call should be + skipped. If this is set to non-zero and the necessary return value + is unavailable or unsuitable, an exception will be thrown. + + + + + Attempts to query the integer identifier for the current row. This + will not work for tables that were created WITHOUT ROWID -OR- if the + query does not include the "rowid" column or one of its aliases -OR- + if the was not created with the + flag. + + + The index of the BLOB column. + + + The integer identifier for the current row -OR- null if it could not + be determined. + + + + + Retrieves the column as a object. + This will not work for tables that were created WITHOUT ROWID + -OR- if the query does not include the "rowid" column or one + of its aliases -OR- if the was + not created with the + flag. + + The index of the column. + + Non-zero to open the blob object for read-only access. + + A new object. + + + + Retrieves the column as a boolean value + + The index of the column. + bool + + + + Retrieves the column as a single byte value + + The index of the column. + byte + + + + Retrieves a column as an array of bytes (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the bytes into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of bytes written into the array + + To determine the number of bytes in the column, pass a null value for the buffer. The total length will be returned. + + + + + Returns the column as a single character + + The index of the column. + char + + + + Retrieves a column as an array of chars (blob) + + The index of the column. + The zero-based index of where to begin reading the data + The buffer to write the characters into + The zero-based index of where to begin writing into the array + The number of bytes to retrieve + The actual number of characters written into the array + + To determine the number of characters in the column, pass a null value for the buffer. The total length will be returned. + + + + + Retrieves the name of the back-end datatype of the column + + The index of the column. + string + + + + Retrieve the column as a date/time value + + The index of the column. + DateTime + + + + Retrieve the column as a decimal value + + The index of the column. + decimal + + + + Returns the column as a double + + The index of the column. + double + + + + Determines and returns the of the + specified column. + + + The index of the column. + + + The associated with the specified + column, if any. + + + + + Returns the .NET type of a given column + + The index of the column. + Type + + + + Returns a column as a float value + + The index of the column. + float + + + + Returns the column as a Guid + + The index of the column. + Guid + + + + Returns the column as a short + + The index of the column. + Int16 + + + + Retrieves the column as an int + + The index of the column. + Int32 + + + + Retrieves the column as a long + + The index of the column. + Int64 + + + + Retrieves the name of the column + + The index of the column. + string + + + + Returns the name of the database associated with the specified column. + + The index of the column. + string + + + + Returns the name of the table associated with the specified column. + + The index of the column. + string + + + + Returns the original name of the specified column. + + The index of the column. + string + + + + Retrieves the i of a column, given its name + + The name of the column to retrieve + The int i of the column + + + + Schema information in SQLite is difficult to map into .NET conventions, so a lot of work must be done + to gather the necessary information so it can be represented in an ADO.NET manner. + + Returns a DataTable containing the schema information for the active SELECT statement being processed. + + + + Retrieves the column as a string + + The index of the column. + string + + + + Retrieves the column as an object corresponding to the underlying datatype of the column + + The index of the column. + object + + + + Retreives the values of multiple columns, up to the size of the supplied array + + The array to fill with values from the columns in the current resultset + The number of columns retrieved + + + + Returns a collection containing all the column names and values for the + current row of data in the current resultset, if any. If there is no + current row or no current resultset, an exception may be thrown. + + + The collection containing the column name and value information for the + current row of data in the current resultset or null if this information + cannot be obtained. + + + + + Returns True if the resultset has rows that can be fetched + + + + + Returns True if the data reader is closed + + + + + Returns True if the specified column is null + + The index of the column. + True or False + + + + Checks if the specified statement appears to have impacted + one or more rows. If so, updates the appropriate count(s). + + + The statement in progress to be checked. + + + + + Single steps the specified statment and checks the number + of rows affected, if applicable. + + + The statement to be stepped. + + + Non-zero if the specified statement appears to have more + rows within it; otherwise, zero. + + + + + Moves to the next resultset in multiple row-returning SQL command. + + True if the command was successful and a new resultset is available, False otherwise. + + + + This method attempts to query the database connection associated with + the data reader in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Retrieves the SQLiteType for a given column and row value. + + + The original SQLiteType structure, based only on the column. + + + The textual value of the column for a given row. + + + The SQLiteType structure. + + + + + Retrieves the SQLiteType for a given column, and caches it to avoid repetetive interop calls. + + The flags associated with the parent connection object. + The index of the column. + A SQLiteType structure + + + + Attempts to read the next row from the current result set. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Attempts to read the next row from the current result set. + + + When this parameter is non-zero, the SingleRow command + behavior flag will be ignored. + + + Non-zero if a new row was successfully loaded and is ready + for processing; otherwise, zero. + + + + + Returns the number of rows affected by the statement being executed. + The value returned may not be accurate for DDL statements. Also, it + will be -1 for any statement that does not modify the database (e.g. + SELECT). If an otherwise read-only statement modifies the database + indirectly (e.g. via a virtual table or user-defined function), the + value returned is undefined. + + + + + Indexer to retrieve data from a column given its name + + The name of the column to retrieve data for + The value contained in the column + + + + Indexer to retrieve data from a column given its i + + The index of the column. + The value contained in the column + + + + SQLite exception class. + + + + + This value was copied from the "WinError.h" file included with the + Platform SDK for Windows 10. + + + + + This field contains the SQLite (or Win32?) error code associated + with this exception. + + + + + Private constructor for use with serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Public constructor for generating a SQLite exception given the error + code and message. + + + The SQLite return code to report. + + + Message text to go along with the return code message text. + + + + + Public constructor that uses the base class constructor for the error + message. + + Error message text. + + + + Public constructor that uses the default base class constructor. + + + + + Public constructor that uses the base class constructor for the error + message and inner exception. + + Error message text. + The original (inner) exception. + + + + Adds extra information to the serialized object data specific to this + class type. This is only used for serialization. + + + Holds the serialized object data about the exception being thrown. + + + Contains contextual information about the source or destination. + + + + + Gets the associated SQLite result code for this exception as a + . This property returns the same + underlying value as the property. + + + + + Gets the associated SQLite return code for this exception as an + . For desktop versions of the .NET Framework, + this property overrides the property of the same name within the + + class. This property returns the same underlying value as the + property. + + + + + This method performs extra initialization tasks. It may be called by + any of the constructors of this class. It must not throw exceptions. + + + + + Maps a Win32 error code to an HRESULT. + + + The specified Win32 error code. It must be within the range of zero + (0) to 0xFFFF (65535). + + + Non-zero if the HRESULT should indicate success; otherwise, zero. + + + The integer value of the HRESULT. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Determines if an integer error code is really a failure HRESULT. + If so, extracts the error code from it; otherwise, returns the + value verbatim. + + + Either a failure HRESULT or a Win32 error code. + + + Either an extracted Win32 error code -OR- the origianl value + verbatim. + + + + + Maps an HRESULT to a Win32 error code. + + + The specified HRESULT. + + + The integer value of the Win32 error code. + + + + + Attempts to map the specified onto an + existing HRESULT -OR- a Win32 error code wrapped in an HRESULT. The + mappings may not have perfectly matching semantics; however, they do + have the benefit of being unique within the context of this exception + type. + + + The to map. + + + The integer HRESULT value -OR- null if there is no known mapping. + + + + + Returns the error message for the specified SQLite return code. + + The SQLite return code. + The error message or null if it cannot be found. + + + + Returns the composite error message based on the SQLite return code + and the optional detailed error message. + + The SQLite return code. + Optional detailed error message. + Error message text for the return code. + + + + SQLite error codes. Actually, this enumeration represents a return code, + which may also indicate success in one of several ways (e.g. SQLITE_OK, + SQLITE_ROW, and SQLITE_DONE). Therefore, the name of this enumeration is + something of a misnomer. + + + + + The error code is unknown. This error code + is only used by the managed wrapper itself. + + + + + Successful result + + + + + SQL error or missing database + + + + + Internal logic error in SQLite + + + + + Access permission denied + + + + + Callback routine requested an abort + + + + + The database file is locked + + + + + A table in the database is locked + + + + + A malloc() failed + + + + + Attempt to write a readonly database + + + + + Operation terminated by sqlite3_interrupt() + + + + + Some kind of disk I/O error occurred + + + + + The database disk image is malformed + + + + + Unknown opcode in sqlite3_file_control() + + + + + Insertion failed because database is full + + + + + Unable to open the database file + + + + + Database lock protocol error + + + + + Database is empty + + + + + The database schema changed + + + + + String or BLOB exceeds size limit + + + + + Abort due to constraint violation + + + + + Data type mismatch + + + + + Library used incorrectly + + + + + Uses OS features not supported on host + + + + + Authorization denied + + + + + Auxiliary database format error + + + + + 2nd parameter to sqlite3_bind out of range + + + + + File opened that is not a database file + + + + + Notifications from sqlite3_log() + + + + + Warnings from sqlite3_log() + + + + + sqlite3_step() has another row ready + + + + + sqlite3_step() has finished executing + + + + + Used to mask off extended result codes + + + + + A collation sequence was referenced by a schema and it cannot be + found. + + + + + An internal operation failed and it may succeed if retried. + + + + + The specified snapshot has been overwritten by a checkpoint. + + + + + A file read operation failed. + + + + + A file read operation returned less data than requested. + + + + + A file write operation failed. + + + + + A file synchronization operation failed. + + + + + A directory synchronization operation failed. + + + + + A file truncate operation failed. + + + + + A file metadata operation failed. + + + + + A file unlock operation failed. + + + + + A file lock operation failed. + + + + + A file delete operation failed. + + + + + Not currently used. + + + + + Out-of-memory during a file operation. + + + + + A file existence/status operation failed. + + + + + A check for a reserved lock failed. + + + + + A file lock operation failed. + + + + + A file close operation failed. + + + + + A directory close operation failed. + + + + + A shared memory open operation failed. + + + + + A shared memory size operation failed. + + + + + A shared memory lock operation failed. + + + + + A shared memory map operation failed. + + + + + A file seek operation failed. + + + + + A file delete operation failed because it does not exist. + + + + + A file memory mapping operation failed. + + + + + The temporary directory path could not be obtained. + + + + + A path string conversion operation failed. + + + + + Reserved. + + + + + An attempt to authenticate failed. + + + + + An attempt to begin a file system transaction failed. + + + + + An attempt to commit a file system transaction failed. + + + + + An attempt to rollback a file system transaction failed. + + + + + Data read from the file system appears to be incorrect. + + + + + File system corruption was detected during a read or write. + + + + + An exception was caught during use of mapped memory. + In general, this applies only to the WAL journal mode. + + + + + A database table is locked in shared-cache mode. + + + + + A virtual table in the database is locked. + + + + + A database file is locked due to a recovery operation. + + + + + A database file is locked due to snapshot semantics. + + + + + An internal timeout was encountered while waiting for a database lock. + + + + + A database file cannot be opened because no temporary directory is available. + + + + + A database file cannot be opened because its path represents a directory. + + + + + A database file cannot be opened because its full path could not be obtained. + + + + + A database file cannot be opened because a path string conversion operation failed. + + + + + No longer used. + + + + + A database file is a symbolic link and cannot be opened. + + + + + A virtual table is malformed. + + + + + A required sequence table is missing or corrupt. + + + + + An index entry that should be present is missing. + + + + + A database file is read-only due to a recovery operation. + + + + + A database file is read-only because a lock could not be obtained. + + + + + A database file is read-only because it needs rollback processing. + + + + + A database file is read-only because it was moved while open. + + + + + The shared-memory file is read-only and it should be read-write. + + + + + Unable to create journal file because the directory is read-only. + + + + + An operation is being aborted due to rollback processing. + + + + + A CHECK constraint failed. + + + + + A commit hook produced a unsuccessful return code. + + + + + A FOREIGN KEY constraint failed. + + + + + Not currently used. + + + + + A NOT NULL constraint failed. + + + + + A PRIMARY KEY constraint failed. + + + + + The RAISE function was used by a trigger-program. + + + + + A UNIQUE constraint failed. + + + + + Not currently used. + + + + + A ROWID constraint failed. + + + + + A database cursor is busy and cannot be moved. + + + + + Value does not conform to specified data type. + + + + + Method called without an appropriate license. + + + + + Frames were recovered from the WAL log file. + + + + + Pages were recovered from the journal file. + + + + + May be returned for spurious errors that can occur when applying + an RBU update. + + + + + An automatic index was created to process a query. + + + + + User authentication failed. + + + + + Success. Prevents the extension from unloading until the process + terminates. + + + + + Success. The specified file name refers to a symbolic link. + + + + + SQLite implementation of . + + + SQLite implementation of . + + + + + Constructs a new instance. + + + + + Cleans up resources (native and managed) associated with the current instance. + + + + + Cleans up resources associated with the current instance. + + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. This event is provided for backward compatibility only. + New code should use the class instead. + + + + + Static instance member which returns an instanced class. + + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + Creates and returns a new object. + + The new object. + + + + This method is called to perform preliminary static initialization + necessary for this class. + + + + + This method is called to perform some of the static initialization + necessary for this class. + + + + + Will provide a object in .NET 3.5. + + The class or interface type to query for. + + + + + These constants are used with the sqlite3_create_function() API, et al. + + + + + Initial flags value, no flags set. + + + + + The function uses UTF-8. + + + + + The function uses little-endian UTF-16. + + + + + The function uses big-endian UTF-16. + + + + + The function uses UTF-16 in native byte order. + + + + + Deprecated, do not use. + + + + + For sqlite3_create_collation() only, do not use. + + + + + Used to mask off the flags related to encodings. + + + + + The new function always gives the same output when the input parameters + are the same. The abs() function is deterministic, for example, but + randomblob() is not. Functions must be deterministic in order to be used + in certain contexts such as with the WHERE clause of partial indexes or + in generated columns. SQLite might also optimize deterministic functions + by factoring them out of inner loops. + + + + + The function may only be invoked from top-level SQL, and cannot be used + in VIEWs or TRIGGERs nor in schema structures such as CHECK constraints, + DEFAULT clauses, expression indexes, partial indexes, or generated columns. + The SQLITE_DIRECTONLY flags is a security feature which is recommended for + all application-defined SQL functions, and especially for functions that + have side-effects or that could potentially leak sensitive information. + + + + + The function may call sqlite3_value_subtype() to inspect the sub-types of + its arguments. Specifying this flag makes no difference for scalar or + aggregate user functions. However, if it is not specified for a user-defined + window function, then any sub-types belonging to arguments passed to the + window function may be discarded before the window function is called + (i.e. sqlite3_value_subtype() will always return 0). + + + + + The function is unlikely to cause problems even if misused. An innocuous + function should have no side effects and should not depend on any values + other than its input parameters. The abs() function is an example of an + innocuous function. The load_extension() SQL function is not innocuous + because of its side effects. + + SQLITE_INNOCUOUS is similar to SQLITE_DETERMINISTIC, but is not exactly + the same. The random() function is an example of a function that is + innocuous but not deterministic. + + Some heightened security settings (SQLITE_DBCONFIG_TRUSTED_SCHEMA and + PRAGMA trusted_schema=OFF) disable the use of SQL functions inside views + and triggers and in schema structures such as CHECK constraints, DEFAULT + clauses, expression indexes, partial indexes, and generated columns unless + the function is tagged with SQLITE_INNOCUOUS. Most built-in functions are + innocuous. Developers are advised to avoid using the SQLITE_INNOCUOUS flag + for application-defined functions unless the function has been carefully + audited and found to be free of potentially security-adverse side-effects + and information-leaks. + + + + + The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function + might call sqlite3_result_subtype() to cause a sub-type to be + associated with its result. Every function that invokes + sqlite3_result_subtype() should have this property. If it does not, + then the call to sqlite3_result_subtype() might become a no-op if the + function is used as term in an expression index. On the other hand, + SQL functions that never invoke sqlite3_result_subtype() should avoid + setting this property, as the purpose of this property is to disable + certain optimizations that are incompatible with subtypes. + + + + + This abstract class is designed to handle user-defined functions easily. An instance of the derived class is made for each + connection to the database. + + + Although there is one instance of a class derived from SQLiteFunction per database connection, the derived class has no access + to the underlying connection. This is necessary to deter implementers from thinking it would be a good idea to make database + calls during processing. + + It is important to distinguish between a per-connection instance, and a per-SQL statement context. One instance of this class + services all SQL statements being stepped through on that connection, and there can be many. One should never store per-statement + information in member variables of user-defined function classes. + + For aggregate functions, always create and store your per-statement data in the contextData object on the 1st step. This data will + be automatically freed for you (and Dispose() called if the item supports IDisposable) when the statement completes. + + + + + The base connection this function is attached to + + + + + Internal array used to keep track of aggregate function context data + + + + + The connection flags associated with this object (this should be the + same value as the flags associated with the parent connection object). + + + + + Holds a reference to the callback function for user functions + + + + + Holds a reference to the callback function for stepping in an aggregate function + + + + + Holds a reference to the callback function for finalizing an aggregate function + + + + + Holds a reference to the callback function for getting a window function value + + + + + Holds a reference to the callback function for inverse in a window function + + + + + Holds a reference to the callback function for collating sequences + + + + + Raw parameter pointers for the current callback. Only valid during a callback. + + + + + Current context of the current callback. Only valid during a callback + + + + + This static dictionary contains all the registered (known) user-defined + functions declared using the proper attributes. The contained dictionary + values are always null and are not currently used. + + + + + Internal constructor, initializes the function's internal variables. + + + + + Constructs an instance of this class using the specified data-type + conversion parameters. + + + The DateTime format to be used when converting string values to a + DateTime and binding DateTime parameters. + + + The to be used when creating DateTime + values. + + + The format string to be used when parsing and formatting DateTime + values. + + + Non-zero to create a UTF-16 data-type conversion context; otherwise, + a UTF-8 data-type conversion context will be created. + + + + + Disposes of any active contextData variables that were not automatically cleaned up. Sometimes this can happen if + someone closes the connection while a DataReader is open. + + + + + Placeholder for a user-defined disposal routine + + True if the object is being disposed explicitly + + + + Cleans up resources associated with the current instance. + + + + + Returns a reference to the underlying connection's SQLiteConvert class, which can be used to convert + strings and DateTime's into the current connection's encoding schema. + + + + + Scalar functions override this method to do their magic. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The arguments for the command to process + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + Aggregate functions override this method to do their magic. + + + Typically you'll be updating whatever you've placed in the contextData field and returning as quickly as possible. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + Aggregate functions override this method to finish their aggregate processing. + + + If you implemented your aggregate function properly, + you've been recording and keeping track of your data in the contextData object provided, and now at this stage you should have + all the information you need in there to figure out what to return. + NOTE: It is possible to arrive here without receiving a previous call to Step(), in which case the contextData will + be null. This can happen when no rows were returned. You can either return null, or 0 or some other custom return value + if that is the case. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required window aggregate functions, not legacy aggregate function implementations. It is invoked to + return the current value of the aggregate. Unlike xFinal, the implementation should not delete any context. + + Your own assigned contextData, provided for you so you can return your final results. + You may return most simple types as a return value, null or DBNull.Value to return null, DateTime, or + you may return an Exception-derived class if you wish to return an error to SQLite. Do not actually throw the error, + just return it! + + + + + This method is only required for window aggregate functions, not legacy aggregate function implementations. It is invoked + to remove the oldest presently aggregated result of xStep from the current window. The function arguments, if any, are + those passed to xStep for the row being removed. + + The arguments for the command to process + The 1-based step number. This is incrememted each time the step method is called. + A placeholder for implementers to store contextual data pertaining to the current context. + + + + User-defined collating sequences override this method to provide a custom string sorting algorithm. + + The first string to compare. + The second strnig to compare. + 1 if param1 is greater than param2, 0 if they are equal, or -1 if param1 is less than param2. + + + + Gets and returns the sub-type associated with the specified function parameter. + + + The parameter index to check. + + + The sub-type associated with the specified function parameter. + + + + + Attempts to convert the specified function parameter to numeric and + then gets and returns the new type affinity associated with this + value. + + + The parameter index to check. + + + The new type affinity associated with this value. + + + + + Gets and returns the "no change" flag associated with the specified + function parameter. This method can only be used while within a call + to the method of a virtual + table implementation. + + + The parameter index to check. + + + Non-zero if the column associated with the function parameter is + unchanged in an UPDATE against a virtual table. + + + + + Gets and returns the "from bind" flag associated with the specified + function parameter. + + + The parameter index to check. + + + Non-zero if the function parameter at the specified index was + originally specified via a bound parameter. + + + + + Arranges for the specified sub-type value to be associated + with the function result. + + + The desired sub-type of the function result. + + + + + Performs some sanity checks on the index and how it relates + to the current function parameters. + + + The parameter index to be checked for bounds, etc. + + + + + Converts an IntPtr array of context arguments to an object array containing the resolved parameters the pointers point to. + + + Parameters passed to functions have only an affinity for a certain data type, there is no underlying schema available + to force them into a certain type. Therefore the only types you will ever see as parameters are + DBNull.Value, Int64, Double, String or byte[] array. + + The number of arguments + A pointer to the array of arguments + Pointer values for the arguments + An object array of the arguments once they've been converted to .NET values + + + + Takes the return value from Invoke() and Final() and figures out how to return it to SQLite's context. + + The context the return value applies to + The parameter to return to SQLite + + + + Internal scalar callback function, which wraps the raw context pointer and calls the virtual Invoke() method. + WARNING: Must not throw exceptions. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + Internal collating sequence function, which wraps up the raw string pointers and executes the Compare() virtual function. + WARNING: Must not throw exceptions. + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. Returns 0 if an exception is caught. + + + + The internal aggregate Step function callback, which wraps the raw context pointer and calls the virtual Step() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Step() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + An internal aggregate Final function callback, which wraps the context pointer and calls the virtual Final() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + An internal aggregate Value function callback, which wraps the context pointer and calls the virtual Value() method. + WARNING: Must not throw exceptions. + + A raw context pointer + + + + The internal aggregate Inverse function callback, which wraps the raw context pointer and calls the virtual Inverse() method. + WARNING: Must not throw exceptions. + + + This function takes care of doing the lookups and getting the important information put together to call the Inverse() function. + That includes pulling out the user's contextData and updating it after the call is made. We use a sorted list for this so + binary searches can be done to find the data. + + A raw context pointer + Number of arguments passed in + A pointer to the array of arguments + + + + Using reflection, enumerate all assemblies in the current appdomain looking for classes that + have a SQLiteFunctionAttribute attribute, and registering them accordingly. + + + + + Manual method of registering a function. The type must still have the SQLiteFunctionAttributes in order to work + properly, but this is a workaround for the Compact Framework where enumerating assemblies is not currently supported. + + The type of the function to register + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + + + Alternative method of registering a function. This method + does not require the specified type to be annotated with + . + + + The name of the function to register. + + + The number of arguments accepted by the function. + + + The type of SQLite function being registered (e.g. scalar, + aggregate, or collating sequence). + + + The extra flags for the function being registered. + + + The that actually implements the function. + This will only be used if the + and parameters are null. + + + The to be used for all calls into the + , + , + and virtual methods. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for aggregate functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + The to be used for all calls into the + virtual method. This + parameter is only necessary for window functions. + + + + + Replaces a registered function, disposing of the associated (old) + value if necessary. + + + The attribute that describes the function to replace. + + + The new value to use. + + + Non-zero if an existing registered function was replaced; otherwise, + zero. + + + + + Creates a instance based on the specified + . + + + The containing the metadata about + the function to create. + + + The created function -OR- null if the function could not be created. + + + Non-zero if the function was created; otherwise, zero. + + + + + Called by the SQLiteBase derived classes, this method binds all registered (known) user-defined functions to a connection. + It is done this way so that all user-defined functions will access the database using the same encoding scheme + as the connection (UTF-8 or UTF-16). + + + The wrapper functions that interop with SQLite will create a unique cookie value, which internally is a pointer to + all the wrapped callback functions. The interop function uses it to map CDecl callbacks to StdCall callbacks. + + The base object on which the functions are to bind. + The flags associated with the parent connection object. + Returns a logical list of functions which the connection should retain until it is closed. + + + + Called by the SQLiteBase derived classes, this method unbinds all registered (known) + functions -OR- all previously bound user-defined functions from a connection. + + The base object from which the functions are to be unbound. + The flags associated with the parent connection object. + + Non-zero to unbind all registered (known) functions -OR- zero to unbind all functions + currently bound to the connection. + + Non-zero if all the specified user-defined functions were unbound. + + + + This function binds a user-defined function to a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + + + + This function unbinds a user-defined functions from a connection. + + + The object instance associated with the + that the function should be bound to. + + + The object instance containing + the metadata for the function to be bound. + + + The object instance that implements the + function to be bound. + + + The flags associated with the parent connection object. + + Non-zero if the function was unbound. + + + + This type is used with the + method. + + + This is always the string literal "Invoke". + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This type is used with the + method. + + + This is always the string literal "Step". + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This type is used with the + method. + + + This is always the string literal "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This type is used with the + method. + + + This is always the string literal "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + This class implements a SQLite function using a . + All the virtual methods of the class are + implemented using calls to the , + , , + and strongly typed delegate types + or via the method. + The arguments are presented in the same order they appear in + the associated methods with one exception: + the first argument is the name of the virtual method being implemented. + + + + + This error message is used by the overridden virtual methods when + a required property (e.g. + or ) has not been + set. + + + + + This error message is used by the overridden + method when the result does not have a type of . + + + + + Constructs an empty instance of this class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + Constructs an instance of this class using the specified + as the + implementation. + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + The to be used for all calls into the + virtual method needed by the + base class. + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Invoke". + + + The original arguments received by the method. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Step". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Step". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Final". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Value". + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Inverse". + + + The original arguments received by the method. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Updates the output arguments for the method, + using an of . The first + argument is always the literal string "Inverse". Currently, only the + parameter is updated. + + + The original arguments received by the method. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + Returns the list of arguments for the method, + as an of . The first + argument is always the literal string "Compare". + + + The first string to compare. + + + The second strnig to compare. + + + Non-zero if the returned arguments are going to be used with the + type; otherwise, zero. + + + The arguments to pass to the configured . + + + + + The to be used for all calls into the + , , and + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + The to be used for all calls into the + virtual methods needed by the + base class. + + + + + This virtual method is the implementation for scalar functions. + See the method for more + details. + + + The arguments for the scalar function. + + + The result of the scalar function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + The result of the aggregate function. + + + + + This virtual method is part of the implementation for aggregate + functions. See the method + for more details. + + + The arguments for the aggregate function. + + + The step number (one based). This is incrememted each time the + method is called. + + + A placeholder for implementers to store contextual data pertaining + to the current context. + + + + + This virtual method is part of the implementation for collating + sequences. See the method + for more details. + + + The first string to compare. + + + The second strnig to compare. + + + A positive integer if the parameter is + greater than the parameter, a negative + integer if the parameter is less than + the parameter, or zero if they are + equal. + + + + + Extends SQLiteFunction and allows an inherited class to obtain the collating sequence associated with a function call. + + + User-defined functions can call the GetCollationSequence() method in this class and use it to compare strings and char arrays. + + + + + Obtains the collating sequence in effect for the given function. + + + + + + Cleans up resources (native and managed) associated with the current instance. + + + Zero when being disposed via garbage collection; otherwise, non-zero. + + + + + The type of user-defined function to declare + + + + + Scalar functions are designed to be called and return a result immediately. Examples include ABS(), Upper(), Lower(), etc. + + + + + Aggregate functions are designed to accumulate data until the end of a call and then return a result gleaned from the accumulated data. + Examples include SUM(), COUNT(), AVG(), etc. + + + + + Collating sequences are used to sort textual data in a custom manner, and appear in an ORDER BY clause. Typically text in an ORDER BY is + sorted using a straight case-insensitive comparison function. Custom collating sequences can be used to alter the behavior of text sorting + in a user-defined manner. + + + + + Window functions are designed to apply aggregate and ranking functions over a particular set of rows. + + + + + An internal callback delegate declaration. + + Raw native context pointer for the user function. + Total number of arguments to the user function. + Raw native pointer to the array of raw native argument pointers. + + + + An internal final callback delegate declaration. + + Raw context pointer for the user function + + + + An internal destroy callback delegate declaration. + + Raw pointer to the data to free. + + + + Internal callback delegate for implementing collating sequences + + Not used + Length of the string pv1 + Pointer to the first string to compare + Length of the string pv2 + Pointer to the second string to compare + Returns -1 if the first string is less than the second. 0 if they are equal, or 1 if the first string is greater + than the second. + + + + The type of collating sequence + + + + + The built-in BINARY collating sequence + + + + + The built-in NOCASE collating sequence + + + + + The built-in REVERSE collating sequence + + + + + A custom user-defined collating sequence + + + + + The encoding type the collation sequence uses + + + + + The collation sequence is UTF8 + + + + + The collation sequence is UTF16 little-endian + + + + + The collation sequence is UTF16 big-endian + + + + + A struct describing the collating sequence a function is executing in + + + + + The name of the collating sequence + + + + + The type of collating sequence + + + + + The text encoding of the collation sequence + + + + + Context of the function that requested the collating sequence + + + + + Calls the base collating sequence to compare two strings + + The first string to compare + The second string to compare + -1 if s1 is less than s2, 0 if s1 is equal to s2, and 1 if s1 is greater than s2 + + + + Calls the base collating sequence to compare two character arrays + + The first array to compare + The second array to compare + -1 if c1 is less than c2, 0 if c1 is equal to c2, and 1 if c1 is greater than c2 + + + + A simple custom attribute to enable us to easily find user-defined functions in + the loaded assemblies and initialize them in SQLite as connections are made. + + + + + Default constructor, initializes the internal variables for the function. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + + + Constructs an instance of this class. This sets the initial + , , and + properties to null. + + + The name of the function, as seen by the SQLite core library. + + + The number of arguments that the function will accept. + + + The type of function being declared. This will either be Scalar, + Aggregate, or Collation. + + + The extra flags for the function being declared. + + + + + The function's name as it will be used in SQLite command text. + + + + + The number of arguments this function expects. -1 if the number of arguments is variable. + + + + + The type of function this implementation will be. + + + + + The flags for this function. + + + + + The object instance that describes the class + containing the implementation for the associated function. The value of + this property will not be used if either the or + property values are set to non-null. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + The that refers to the implementation for the + associated function. If this property value is set to non-null, it will + be used instead of the property value. + + + + + This class provides key info for a given SQLite statement. + + Providing key information for a given statement is non-trivial :( + + + + + + Used to support CommandBehavior.KeyInfo + + + + + Used to keep track of the per-table RowId column metadata. + + + + + A single sub-query for a given table/database. + + + + + This function does all the nasty work at determining what keys need to be returned for + a given statement. + + + + + + + + How many additional columns of keyinfo we're holding + + + + + Make sure all the subqueries are open and ready and sync'd with the current rowid + of the table they're supporting + + + + + Release any readers on any subqueries + + + + + Append all the columns we've added to the original query to the schema + + + + + + Event data for logging event handlers. + + + + + The error code. The type of this object value should be + or . + + + + + SQL statement text as the statement first begins executing + + + + + Extra data associated with this event, if any. + + + + + Constructs the object. + + Should be null. + + The error code. The type of this object value should be + or . + + The error message, if any. + The extra data, if any. + + + + Raised when a log event occurs. + + The current connection + Event arguments of the trace + + + + Manages the SQLite custom logging functionality and the associated + callback for the whole process. + + + + + Maximum number of milliseconds a non-primary thread should wait + for the method to be completed. + + + + + Object used to synchronize access to the static instance data + for this class. + + + + + This will be signaled when the + method has been completed. + + + + + Member variable to store the AppDomain.DomainUnload event handler. + + + + + Member variable to store the application log handler to call. + + + + + The default log event handler. + + + + + The log callback passed to native SQLite engine. This must live + as long as the SQLite library has a pointer to it. + + + + + The base SQLite object to interop with. + + + + + The number of times that the + method has been called when the logging subystem was actually + eligible to be initialized (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + The number of times that the method + has been called. + + + + + The number of times that the + method has been completed (i.e. without the "No_SQLiteLog" + environment variable being set). + + + + + This will be non-zero if an attempt was already made to initialize + the (managed) logging subsystem. + + + + + This will be non-zero if logging is currently enabled. + + + + + Creates the that will be used to + signal completion of the method, + if necessary, and then returns it. + + + The that will be used to signal + completion of the method. + + + + + This method checks to see if the SQLite core library allows its + native logging callback to be changed when it has already been + initialized, either explicitly or implicitly. + + + Non-zero if the SQLite core library initialization state can be + safely ignored when setting up logging; otherwise, zero. + + + + + Initializes the SQLite logging facilities. + + + + + Initializes the SQLite logging facilities -OR- waits for the + SQLite logging facilities to be initialized by another thread. + + + The name of the managed class that called this method. This + parameter may be null. + + + + + Initializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if everything was fully initialized successfully. + + + + + Uninitializes the SQLite logging facilities. + + + + + Uninitializes the SQLite logging facilities. + + + The name of the managed class that called this method. This + parameter may be null. + + + Non-zero if the native SQLite library should be shutdown prior + to attempting to unset its logging callback. + + + + + Handles the AppDomain being unloaded. + + Should be null. + The data associated with this event. + + + + This event is raised whenever SQLite raises a logging event. + Note that this should be set as one of the first things in the + application. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + + + + + If this property is true, logging is enabled; otherwise, logging is + disabled. When logging is disabled, no logging events will fire. + For internal use only. + + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The SQLite error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + The integer error code. + The message to be logged. + + + + Log a message to all the registered log event handlers without going + through the SQLite library. + + + The error code. The type of this object value should be + System.Int32 or SQLiteErrorCode. + + The message to be logged. + + + + Creates and initializes the default log event handler. + + + + + Adds the default log event handler to the list of handlers. + + + + + Removes the default log event handler from the list of handlers. + + + + + Internal proxy function that calls any registered application log + event handlers. + + WARNING: This method is used more-or-less directly by native code, + do not modify its type signature. + + + The extra data associated with this message, if any. + + + The error code associated with this message. + + + The message string to be logged. + + + + + Default logger. Currently, uses the Trace class (i.e. sends events + to the current trace listeners, if any). + + Should be null. + The data associated with this event. + + + + MetaDataCollections specific to SQLite + + + + + Returns a list of databases attached to the connection + + + + + Returns column information for the specified table + + + + + Returns index information for the optionally-specified table + + + + + Returns base columns for the given index + + + + + Returns the tables in the given catalog + + + + + Returns user-defined views in the given catalog + + + + + Returns underlying column information on the given view + + + + + Returns foreign key information for the given catalog + + + + + Returns the triggers on the database + + + + + SQLite implementation of DbParameter. + + + + + This value represents an "unknown" . + + + + + The command associated with this parameter. + + + + + The data type of the parameter + + + + + The version information for mapping the parameter + + + + + The value of the data in the parameter + + + + + The source column for the parameter + + + + + The column name + + + + + The data size, unused by SQLite + + + + + The database type name associated with this parameter, if any. + + + + + Constructor used when creating for use with a specific command. + + + The command associated with this parameter. + + + + + Default constructor + + + + + Constructs a named parameter given the specified parameter name + + The parameter name + + + + Constructs a named parameter given the specified parameter name and initial value + + The parameter name + The initial value of the parameter + + + + Constructs a named parameter of the specified type + + The parameter name + The datatype of the parameter + + + + Constructs a named parameter of the specified type and source column reference + + The parameter name + The data type + The source column + + + + Constructs a named parameter of the specified type, source column and row version + + The parameter name + The data type + The source column + The row version information + + + + Constructs an unnamed parameter of the specified data type + + The datatype of the parameter + + + + Constructs an unnamed parameter of the specified data type and sets the initial value + + The datatype of the parameter + The initial value of the parameter + + + + Constructs an unnamed parameter of the specified data type and source column + + The datatype of the parameter + The source column + + + + Constructs an unnamed parameter of the specified data type, source column and row version + + The data type + The source column + The row version information + + + + Constructs a named parameter of the specified type and size + + The parameter name + The data type + The size of the parameter + + + + Constructs a named parameter of the specified type, size and source column + + The name of the parameter + The data type + The size of the parameter + The source column + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + The source column + The row version information + + + + Constructs a named parameter of the specified type, size, source column and row version + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + Ignored + The source column + The row version information + The initial value to assign the parameter + + + + Constructs a named parameter, yet another flavor + + The name of the parameter + The data type + The size of the parameter + Only input parameters are supported in SQLite + Ignored + Ignored + The source column + The row version information + Whether or not this parameter is for comparing NULL's + The intial value to assign the parameter + + + + Constructs an unnamed parameter of the specified type and size + + The data type + The size of the parameter + + + + Constructs an unnamed parameter of the specified type, size, and source column + + The data type + The size of the parameter + The source column + + + + Constructs an unnamed parameter of the specified type, size, source column and row version + + The data type + The size of the parameter + The source column + The row version information + + + + The command associated with this parameter. + + + + + Whether or not the parameter can contain a null value + + + + + Returns the datatype of the parameter + + + + + Supports only input parameters + + + + + Returns the parameter name + + + + + Resets the DbType of the parameter so it can be inferred from the value + + + + + Returns the size of the parameter + + + + + Gets/sets the source column + + + + + Used by DbCommandBuilder to determine the mapping for nullable fields + + + + + Gets and sets the row version + + + + + Gets and sets the parameter value. If no datatype was specified, the datatype will assume the type from the value given. + + + + + The database type name associated with this parameter, if any. + + + + + Clones a parameter + + A new, unassociated SQLiteParameter + + + + Attempts to build a name suitable for use with an index-only + (unnamed) parameter. + + The index for the parameter. + + Non-zero if the returned name should be a placeholder, i.e. + an unnamed parameter that does not use a syntax supported by + the SQLite core library. + + The built name -OR- null if it cannot be built. + + + + Returns non-zero if the specified parameter name appears to + refer to an unnamed parameter placeholder. + + + The parameter name to check. + + + The parameter index or negative one if it cannot be determined. + + + Non-zero if the specified parameter name represents an unnamed + placeholder parameter. + + + + + SQLite implementation of DbParameterCollection. + + + + + The underlying command to which this collection belongs + + + + + The internal array of parameters in this collection + + + + + Determines whether or not all parameters have been bound to their statement(s) + + + + + Initializes the collection + + The command to which the collection belongs + + + + Returns false + + + + + Returns false + + + + + Returns false + + + + + Returns null + + + + + Gets or sets the case-insensitivity setting for use when mappping + parameters. This should only be set immediately after creating a + instance. + + + + + Retrieves an enumerator for the collection + + An enumerator for the underlying array + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + The source column + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + The size of the value + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter name + The data type + A SQLiteParameter object + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a parameter to the collection + + The parameter to add + A zero-based index of where the parameter is located in the array + + + + Adds a named/unnamed parameter and its value to the parameter collection. + + Name of the parameter, or null to indicate an unnamed parameter + The initial value of the parameter + Returns the SQLiteParameter object created during the call. + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Adds an array of parameters to the collection + + The array of parameters to add + + + + Clears the array and resets the collection + + + + + Determines if the named parameter exists in the collection + + The name of the parameter to check + True if the parameter is in the collection + + + + Determines if the parameter exists in the collection + + The SQLiteParameter to check + True if the parameter is in the collection + + + + Not implemented + + + + + + + Returns a count of parameters in the collection + + + + + Overloaded to specialize the return value of the default indexer + + Name of the parameter to get/set + The specified named SQLite parameter + + + + Overloaded to specialize the return value of the default indexer + + The index of the parameter to get/set + The specified SQLite parameter + + + + Retrieve a parameter by name from the collection + + The name of the parameter to fetch + A DbParameter object + + + + Retrieves a parameter by its index in the collection + + The index of the parameter to retrieve + A DbParameter object + + + + Returns the index of a parameter given its name + + The name of the parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Returns the index of a parameter + + The parameter to find + -1 if not found, otherwise a zero-based index of the parameter + + + + Inserts a parameter into the array at the specified location + + The zero-based index to insert the parameter at + The parameter to insert + + + + Removes a parameter from the collection + + The parameter to remove + + + + Removes a parameter from the collection given its name + + The name of the parameter to remove + + + + Removes a parameter from the collection given its index + + The zero-based parameter index to remove + + + + Re-assign the named parameter to a new parameter object + + The name of the parameter to replace + The new parameter + + + + Re-assign a parameter at the specified index + + The zero-based index of the parameter to replace + The new parameter + + + + Un-binds all parameters from their statements + + + + + This function attempts to map all parameters in the collection to all statements in a Command. + Since named parameters may span multiple statements, this function makes sure all statements are bound + to the same named parameter. Unnamed parameters are bound in sequence. + + + + + Represents a single SQL statement in SQLite. + + + + + The underlying SQLite object this statement is bound to + + + + + The command text of this SQL statement + + + + + The actual statement pointer + + + + + An index from which unnamed parameters begin + + + + + Names of the parameters as SQLite understands them to be + + + + + Parameters for this statement + + + + + Command this statement belongs to (if any) + + + + + The total number of schema retries during preparation. + + + + + The total number of locking retries during preparation. + + + + + The total number of schema retries during stepping. + + + + + The total number of retries during stepping. + + + + + The flags associated with the parent connection object. + + + + + The reference count for this statement, which may be shared between + a and a . + + + + + Initializes the statement and attempts to get all information about parameters in the statement + + The base SQLite object + The flags associated with the parent connection object + The statement + The command text for this statement + The previous command in a multi-statement command + + + + Disposes and finalizes the statement + + + + + If the underlying database connection is open, fetches the number of changed rows + resulting from the most recent query; otherwise, does nothing. + + + The number of changes when true is returned. + Undefined if false is returned. + + + The read-only flag when true is returned. + Undefined if false is returned. + + Non-zero if the number of changed rows was fetched. + + + + This method attempts to map the specified named placeholder + parameter, i.e. an unnamed parameter that has been given an + placeholder name. + + The placeholder parameter name to map. + The parameter to assign it. + Non-zero to ignore case. + + + + Called by SQLiteParameterCollection, this function determines if the specified parameter name belongs to + this statement, and if so, keeps a reference to the parameter so it can be bound later. + + The parameter name to map + The parameter to assign it + Non-zero to ignore case. + + + + Bind all parameters, making sure the caller didn't miss any + + + + + This method attempts to query the database connection associated with + the statement in use. If the underlying command or connection is + unavailable, a null value will be returned. + + + The connection object -OR- null if it is unavailable. + + + + + Invokes the parameter binding callback configured for the database + type name associated with the specified column. If no parameter + binding callback is available for the database type name, do + nothing. + + + The index of the column being read. + + + The instance being bound to the + command. + + + Non-zero if the default handling for the parameter binding call + should be skipped (i.e. the parameter should not be bound at all). + Great care should be used when setting this to non-zero. + + + + + Perform the bind operation for an individual parameter + + The index of the parameter to bind + The parameter we're binding + + + + SQLite implementation of DbTransaction that does not support nested transactions. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + SQLite implementation of DbTransaction that does support nested transactions. + + + + + The original transaction level for the associated connection + when this transaction was created (i.e. begun). + + + + + The SAVEPOINT name for this transaction, if any. This will + only be non-null if this transaction is a nested one. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Commits the current transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Constructs the name of a new savepoint for this transaction. It + should only be called from the constructor of this class. + + + The name of the new savepoint -OR- null if it cannot be constructed. + + + + + Base class used by to implement DbTransaction for SQLite. + + + + + The connection to which this transaction is bound. + + + + + Matches the version of the connection. + + + + + The isolation level for this transaction. + + + + + Constructs the transaction object, binding it to the supplied connection + + The connection to open a transaction on + TRUE to defer the writelock, or FALSE to lock immediately + + + + Gets the isolation level of the transaction. SQLite only supports Serializable transactions. + + + + + Disposes the transaction. If it is currently active, any changes are rolled back. + + + + + Returns the underlying connection to which this transaction applies. + + + + + Forwards to the local Connection property + + + + + Rolls back the active transaction. + + + + + Attempts to start a transaction. An exception will be thrown if the transaction cannot + be started for any reason. + + TRUE to defer the writelock, or FALSE to lock immediately + + + + Issue a ROLLBACK command against the database connection, + optionally re-throwing any caught exception. + + + Non-zero to re-throw caught exceptions. + + + + + Checks the state of this transaction, optionally throwing an exception if a state + inconsistency is found. + + + Non-zero to throw an exception if a state inconsistency is found. + + + Non-zero if this transaction is valid; otherwise, false. + + + + + This class encapsulates some tracking data that is used for debugging + and testing purposes. + + + + + This static class provides a thin wrapper around the native library + loading features of the underlying platform. + + + + + This delegate is used to wrap the concept of loading a native + library, based on a file name, and returning the loaded module + handle. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This delegate is used to wrap the concept of querying the machine + name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the Win32 + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the Win32 API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file using the POSIX + API. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process using + the POSIX API. + + + The machine name for the current process -OR- null on failure. + + + + + Attempts to load the specified native library file. + + + The file name of the native library to load. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + Attempts to determine the machine name of the current process. + + + The machine name for the current process -OR- null on failure. + + + + + This class declares P/Invoke methods to call native POSIX APIs. + + + + + This structure is used when running on POSIX operating systems + to store information about the current machine, including the + human readable name of the operating system as well as that of + the underlying hardware. + + + + + This structure is passed directly to the P/Invoke method to + obtain the information about the current machine, including + the human readable name of the operating system as well as + that of the underlying hardware. + + + + + This is the P/Invoke method that wraps the native Unix uname + function. See the POSIX documentation for full details on what it + does. + + + Structure containing a preallocated byte buffer to fill with the + requested information. + + + Zero for success and less than zero upon failure. + + + + + This is the P/Invoke method that wraps the native Unix dlopen + function. See the POSIX documentation for full details on what it + does. + + + The name of the executable library. + + + This must be a combination of the individual bit flags RTLD_LAZY, + RTLD_NOW, RTLD_GLOBAL, and/or RTLD_LOCAL. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Unix dlclose + function. See the POSIX documentation for full details on what it + does. + + + The handle to the loaded native library. + + + Zero upon success -OR- non-zero on failure. + + + + + For use with dlopen(), bind function calls lazily. + + + + + For use with dlopen(), bind function calls immediately. + + + + + For use with dlopen(), make symbols globally available. + + + + + For use with dlopen(), opposite of RTLD_GLOBAL, and the default. + + + + + For use with dlopen(), the defaults used by this class. + + + + + These are the characters used to separate the string fields within + the raw buffer returned by the P/Invoke method. + + + + + This method is a wrapper around the P/Invoke + method that extracts and returns the human readable strings from + the raw buffer. + + + This structure, which contains strings, will be filled based on the + data placed in the raw buffer returned by the + P/Invoke method. + + + Non-zero upon success; otherwise, zero. + + + + + This class declares P/Invoke methods to call native Win32 APIs. + + + + + This is the P/Invoke method that wraps the native Win32 LoadLibrary + function. See the MSDN documentation for full details on what it + does. + + + The name of the executable library. + + + The native module handle upon success -OR- IntPtr.Zero on failure. + + + + + This is the P/Invoke method that wraps the native Win32 GetSystemInfo + function. See the MSDN documentation for full details on what it + does. + + + The system information structure to be filled in by the function. + + + + + This enumeration contains the possible values for the processor + architecture field of the system information structure. + + + + + This structure contains information about the current computer. This + includes the processor type, page size, memory addresses, etc. + + + + + This class declares P/Invoke methods to call native SQLite APIs. + + + + + The file extension used for dynamic link libraries. + + + + + The primary file extension used for the XML configuration file. + + + + + The secondary file extension used for the XML configuration file. + + + + + This is the name of the primary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the name of the secondary XML configuration file specific + to the System.Data.SQLite assembly. + + + + + This is the XML configuratrion file token that will be replaced with + the qualified path to the directory containing the XML configuration + file. + + + + + This is the environment variable token that will be replaced with + the qualified path to the directory containing this assembly. + + + + + This is the environment variable token that will be replaced with an + abbreviation of the target framework attribute value associated with + this assembly. + + + + + This lock is used to protect the static _SQLiteNativeModuleFileName, + _SQLiteNativeModuleHandle, and processorArchitecturePlatforms fields. + + + + + This dictionary stores the mappings between target framework names + and their associated (NuGet) abbreviations. These mappings are only + used by the method. + + + + + This dictionary stores the mappings between processor architecture + names and platform names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This dictionary stores the mappings between processor architecture + names and runtime names. These mappings are now used for two + purposes. First, they are used to determine if the assembly code + base should be used instead of the location, based upon whether one + or more of the named sub-directories exist within the assembly code + base. Second, they are used to assist in loading the appropriate + SQLite interop assembly into the current process. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable assembly directory. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + This is the cached return value from the + method -OR- null if that method + has never returned a valid value. + + + + + When this field is non-zero, it indicates the + method was not able to locate a + suitable XML configuration file name. The + method will check this + field and skips calls into the + method whenever it is non-zero. + + + + + For now, this method simply calls the Initialize method. + + + + + Attempts to initialize this class by pre-loading the native SQLite + library for the processor architecture of the current process. + + + + + Combines two path strings. + + + The first path -OR- null. + + + The second path -OR- null. + + + The combined path string -OR- null if both of the original path + strings are null. + + + + + Resets the cached XML configuration file name value, thus forcing the + next call to method to rely + upon the method to fetch the + XML configuration file name. + + + + + Queries and returns the cached XML configuration file name for the + assembly containing the managed System.Data.SQLite components, if + available. If the cached XML configuration file name value is not + available, the method will + be used to obtain the XML configuration file name. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + Queries and returns the XML configuration file name for the assembly + containing the managed System.Data.SQLite components. + + + The XML configuration file name -OR- null if it cannot be determined + or does not exist. + + + + + If necessary, replaces all supported XML configuration file tokens + with their associated values. + + + The name of the XML configuration file being read. + + + A setting value read from the XML configuration file. + + + The value of the will all supported XML + configuration file tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the + specified XML configuration file. + + + The name of the XML configuration file to read. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + Non-zero to expand any environment variable references contained in + the setting value to be returned. This has no effect on the .NET + Compact Framework. + + + Non-zero to replace any special token references contained in the + setting value to be returned. This has no effect on the .NET Compact + Framework. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. + + + + + Attempts to determine the target framework attribute value that is + associated with the specified managed assembly, if applicable. + + + The managed assembly to read the target framework attribute value + from. + + + The value of the target framework attribute value for the specified + managed assembly -OR- null if it cannot be determined. If this + assembly was compiled with a version of the .NET Framework prior to + version 4.0, the value returned MAY reflect that version of the .NET + Framework instead of the one associated with the specified managed + assembly. + + + + + Accepts a long target framework attribute value and makes it into a + much shorter version, suitable for use with NuGet packages. + + + The long target framework attribute value to convert. + + + The short target framework attribute value -OR- null if it cannot + be determined or converted. + + + + + If necessary, replaces all supported environment variable tokens + with their associated values. + + + A setting value read from an environment variable. + + + The value of the will all supported + environment variable tokens replaced. No return value is reserved + to indicate an error. This method cannot fail. + + + + + Queries and returns the value of the specified setting, using the XML + configuration file and/or the environment variables for the current + process and/or the current system, when available. + + + The name of the setting. + + + The value to be returned if the setting has not been set explicitly + or cannot be determined. + + + The value of the setting -OR- the default value specified by + if it has not been set explicitly or + cannot be determined. By default, all references to existing + environment variables will be expanded to their corresponding values + within the value to be returned unless either the "No_Expand" or + "No_Expand_" environment variable is set [to + anything]. + + + + + Resets the cached assembly directory value, thus forcing the next + call to method to rely + upon the method to fetch the + assembly directory. + + + + + Queries and returns the cached directory for the assembly currently + being executed, if available. If the cached assembly directory value + is not available, the method will + be used to obtain the assembly directory. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Queries and returns the directory for the assembly currently being + executed. + + + The directory for the assembly currently being executed -OR- null if + it cannot be determined. + + + + + Determines the (possibly fully qualified) file name for the native + SQLite library that was loaded by this class. + + + The file name for the native SQLite library that was loaded by + this class -OR- null if its value cannot be determined. + + + + + The name of the environment variable containing the processor + architecture of the current process. + + + + + The native module file name for the native SQLite library or null. + + + + + The native module handle for the native SQLite library or the value + IntPtr.Zero. + + + + + Determines the base file name (without any directory information) + for the native SQLite library to be pre-loaded by this class. + + + The base file name for the native SQLite library to be pre-loaded by + this class -OR- null if its value cannot be determined. + + + + + Searches for the native SQLite library in the directory containing + the assembly currently being executed as well as the base directory + for the current application domain. + + + Upon success, this parameter will be modified to refer to the base + directory containing the native SQLite library. + + + Upon success, this parameter will be modified to refer to the name + of the immediate directory (i.e. the offset from the base directory) + containing the native SQLite library. + + + Upon success, this parameter will be modified to non-zero only if + the base directory itself should be allowed for loading the native + library. + + + Non-zero (success) if the native SQLite library was found; otherwise, + zero (failure). + + + + + Queries and returns the base directory of the current application + domain. + + + Non-zero if this method should only consider a base directory that + has been manually overridden by the application. + + + The base directory for the current application domain -OR- null if it + cannot be determined. + + + + + Determines if the dynamic link library file name requires a suffix + and adds it if necessary. + + + The original dynamic link library file name to inspect. + + + The dynamic link library file name, possibly modified to include an + extension. + + + + + Queries and returns the processor architecture of the current + process. + + + The processor architecture of the current process -OR- null if it + cannot be determined. + + + + + Given the processor architecture, returns the name of the platform. + + + The processor architecture to be translated to a platform name. + + + The platform name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Given the processor architecture, returns the name of the runtime. + + + The processor architecture to be translated to a runtime name. + + + + Non-zero if the component separators within the runtime name should + be replaced with directory separators. + + The runtime name for the specified processor architecture -OR- null + if it cannot be determined. + + + + + Attempts to load the native SQLite library based on the specified + directory and processor architecture. + + + The base directory to use, null for default (the base directory of + the current application domain). This directory should contain the + processor architecture specific sub-directories. + + + The requested processor architecture, null for default (the + processor architecture of the current process). This caller should + almost always specify null for this parameter. + + + Non-zero indicates that the native SQLite library can be loaded + from the base directory itself. + + + Non-zero to skip loading of the native SQLite library, i.e. only + set the native module file name. + + + The candidate native module file name to load will be stored here, + if necessary. + + + The native module handle as returned by LoadLibrary will be stored + here, if necessary. This value will be IntPtr.Zero if the call to + LoadLibrary fails. + + + Non-zero if the native module was loaded successfully; otherwise, + zero. + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to <?xml version="1.0" standalone="yes"?> + <DocumentElement> + <DataTypes> + <TypeName>smallint</TypeName> + <ProviderDbType>10</ProviderDbType> + <ColumnSize>5</ColumnSize> + <DataType>System.Int16</DataType> + <CreateFormat>smallint</CreateFormat> + <IsAutoIncrementable>false</IsAutoIncrementable> + <IsCaseSensitive>false</IsCaseSensitive> + <IsFixedLength>true</IsFixedLength> + <IsFixedPrecisionScale>true</IsFixedPrecisionScale> + <IsLong>false</IsLong> + <IsNullable>true</ [rest of string was truncated]";. + + + + + Looks up a localized string similar to ABORT,ACTION,ADD,AFTER,ALL,ALTER,ALWAYS,ANALYZE,AND,AS,ASC,ATTACH,AUTOINCREMENT,BEFORE,BEGIN,BETWEEN,BY,CASCADE,CASE,CAST,CHECK,COLLATE,COLUMN,COMMIT,CONFLICT,CONSTRAINT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,DATABASE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DETACH,DISTINCT,DO,DROP,EACH,ELSE,END,ESCAPE,EXCEPT,EXCLUDE,EXCLUSIVE,EXISTS,EXPLAIN,FAIL,FILTER,FIRST,FOLLOWING,FOR,FOREIGN,FROM,FULL,GENERATED,GLOB,GROUP,GROUPS,HAVING,IF,IGNORE,IMMEDIATE,IN,INDEX,INDEXED,INITIALLY,INNER,INSERT,INSTEAD,INTERSECT,INTO,IS,ISNULL,JOIN,KEY,LAST,LEFT,LIKE,LIMIT,MATCH,MATERIALIZED,NATURAL,NO,NOT,NOTHING,NOTNULL,NULL,NULLS,OF,OFFSET,ON,OR,ORDER,OTHERS,OUTER,OVER,PARTITION,PLAN,PRAGMA,PRECEDING,PRIMARY,QUERY,RAISE,RANGE,RECURSIVE,REFERENCES,REGEXP,REINDEX,RELEASE,RENAME,REPLACE,RESTRICT,RETURNING,RIGHT,ROLLBACK,ROW,ROWS,SAVEPOINT,SELECT,SET,TABLE,TEMP,TEMPORARY,THEN,TIES,TO,TRANSACTION,TRIGGER,UNBOUNDED,UNION,UNIQUE,UPDATE,USING,VACUUM,VALUES,VIEW,VIRTUAL,WHEN,WHERE,WINDOW,WITH,WITHOUT. + + + + + Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?> + <DocumentElement> + <MetaDataCollections> + <CollectionName>MetaDataCollections</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataCollections> + <CollectionName>DataSourceInformation</CollectionName> + <NumberOfRestrictions>0</NumberOfRestrictions> + <NumberOfIdentifierParts>0</NumberOfIdentifierParts> + </MetaDataCollections> + <MetaDataC [rest of string was truncated]";. + + + + + This represents the status of an internal operation. These values + should not be seen outside of this module. + + + + + The operation was attempted and completed successfully. + + + + + The operation was attempted and failed in some way. + + + + + The operation has either not been started -OR- its status is + currently unknown. + + + + + The operation was either skipped -OR- will not be performed. + + + + + The operation will be attempted later, possibly via a secondary + thread, event loop, etc. + + + + + This is a console-mode program that demonstrates how to use the Harpy + "late-bound" licensing SDK in order to validate and verify a license + certificate against a given assembly. + + NOTE: This static class been adapted for use by the System.Data.SQLite + project. Its use is governed by a special license agreement and + this file may not be redistributed without the express written + permission of all parties from the copyright notices at the top + of this file. + + + + + + This interface represents a virtual table implementation written in + native code. + + + + + + int (*xCreate)(sqlite3 *db, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xCreate method is called to create a new instance of a virtual table + in response to a CREATE VIRTUAL TABLE statement. + If the xCreate method is the same pointer as the xConnect method, then the + virtual table is an eponymous virtual table. + If the xCreate method is omitted (if it is a NULL pointer) then the virtual + table is an eponymous-only virtual table. + + + The db parameter is a pointer to the SQLite database connection that + is executing the CREATE VIRTUAL TABLE statement. + The pAux argument is the copy of the client data pointer that was the + fourth argument to the sqlite3_create_module() or + sqlite3_create_module_v2() call that registered the + virtual table module. + The argv parameter is an array of argc pointers to null terminated strings. + The first string, argv[0], is the name of the module being invoked. The + module name is the name provided as the second argument to + sqlite3_create_module() and as the argument to the USING clause of the + CREATE VIRTUAL TABLE statement that is running. + The second, argv[1], is the name of the database in which the new virtual + table is being created. The database name is "main" for the primary database, or + "temp" for TEMP database, or the name given at the end of the ATTACH + statement for attached databases. The third element of the array, argv[2], + is the name of the new virtual table, as specified following the TABLE + keyword in the CREATE VIRTUAL TABLE statement. + If present, the fourth and subsequent strings in the argv[] array report + the arguments to the module name in the CREATE VIRTUAL TABLE statement. + + + The job of this method is to construct the new virtual table object + (an sqlite3_vtab object) and return a pointer to it in *ppVTab. + + + As part of the task of creating a new sqlite3_vtab structure, this + method must invoke sqlite3_declare_vtab() to tell the SQLite + core about the columns and datatypes in the virtual table. + The sqlite3_declare_vtab() API has the following prototype: + + + int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable) + + + The first argument to sqlite3_declare_vtab() must be the same + database connection pointer as the first parameter to this method. + The second argument to sqlite3_declare_vtab() must a zero-terminated + UTF-8 string that contains a well-formed CREATE TABLE statement that + defines the columns in the virtual table and their data types. + The name of the table in this CREATE TABLE statement is ignored, + as are all constraints. Only the column names and datatypes matter. + The CREATE TABLE statement string need not to be + held in persistent memory. The string can be + deallocated and/or reused as soon as the sqlite3_declare_vtab() + routine returns. + + + The xConnect method can also optionally request special features + for the virtual table by making one or more calls to + the sqlite3_vtab_config() interface: + + + int sqlite3_vtab_config(sqlite3 *db, int op, ...); + + + Calls to sqlite3_vtab_config() are optional. But for maximum + security, it is recommended that virtual table implementations + invoke "sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY)" if the + virtual table will not be used from inside of triggers or views. + + + The xCreate method need not initialize the pModule, nRef, and zErrMsg + fields of the sqlite3_vtab object. The SQLite core will take care of + that chore. + + + The xCreate should return SQLITE_OK if it is successful in + creating the new virtual table, or SQLITE_ERROR if it is not successful. + If not successful, the sqlite3_vtab structure must not be allocated. + An error message may optionally be returned in *pzErr if unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + If the xCreate method is omitted (left as a NULL pointer) then the + virtual table is an eponymous-only virtual table. New instances of + the virtual table cannot be created using CREATE VIRTUAL TABLE and the + virtual table can only be used via its module name. + Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand + eponymous-only virtual tables and will segfault if an attempt is made + to CREATE VIRTUAL TABLE on an eponymous-only virtual table because + the xCreate method was not checked for null. + + + If the xCreate method is the exact same pointer as the xConnect method, + that indicates that the virtual table does not need to initialize backing + store. Such a virtual table can be used as an eponymous virtual table + or as a named virtual table using CREATE VIRTUAL TABLE or both. + + + If a column datatype contains the special keyword "HIDDEN" + (in any combination of upper and lower case letters) then that keyword + it is omitted from the column datatype name and the column is marked + as a hidden column internally. + A hidden column differs from a normal column in three respects: + + + ]]> + ]]> Hidden columns are not listed in the dataset returned by + "PRAGMA table_info", + ]]>]]> Hidden columns are not included in the expansion of a "*" + expression in the result set of a SELECT, and + ]]>]]> Hidden columns are not included in the implicit column-list + used by an INSERT statement that lacks an explicit column-list. + ]]>]]> + + + For example, if the following SQL is passed to sqlite3_declare_vtab(): + + + CREATE TABLE x(a HIDDEN VARCHAR(12), b INTEGER, c INTEGER Hidden); + + + Then the virtual table would be created with two hidden columns, + and with datatypes of "VARCHAR(12)" and "INTEGER". + + + An example use of hidden columns can be seen in the FTS3 virtual + table implementation, where every FTS virtual table + contains an FTS hidden column that is used to pass information from the + virtual table into FTS auxiliary functions and to the FTS MATCH operator. + + + A virtual table that contains hidden columns can be used like + a table-valued function in the FROM clause of a SELECT statement. + The arguments to the table-valued function become constraints on + the HIDDEN columns of the virtual table. + + + For example, the "generate_series" extension (located in the + ext/misc/series.c + file in the source tree) + implements an eponymous virtual table with the following schema: + + + CREATE TABLE generate_series( + value, + start HIDDEN, + stop HIDDEN, + step HIDDEN + ); + + + The sqlite3_module.xBestIndex method in the implementation of this + table checks for equality constraints against the HIDDEN columns, and uses + those as input parameters to determine the range of integer "value" outputs + to generate. Reasonable defaults are used for any unconstrained columns. + For example, to list all integers between 5 and 50: + + + SELECT value FROM generate_series(5,50); + + + The previous query is equivalent to the following: + + + SELECT value FROM generate_series WHERE start=5 AND stop=50; + + + Arguments on the virtual table name are matched to hidden columns + in order. The number of arguments can be less than the + number of hidden columns, in which case the latter hidden columns are + unconstrained. However, an error results if there are more arguments + than there are hidden columns in the virtual table. + + + Beginning with SQLite version 3.14.0 (2016-08-08), + the CREATE TABLE statement that + is passed into sqlite3_declare_vtab() may contain a WITHOUT ROWID clause. + This is useful for cases where the virtual table rows + cannot easily be mapped into unique integers. A CREATE TABLE + statement that includes WITHOUT ROWID must define one or more columns as + the PRIMARY KEY. Every column of the PRIMARY KEY must individually be + NOT NULL and all columns for each row must be collectively unique. + + + Note that SQLite does not enforce the PRIMARY KEY for a WITHOUT ROWID + virtual table. Enforcement is the responsibility of the underlying + virtual table implementation. But SQLite does assume that the PRIMARY KEY + constraint is valid - that the identified columns really are UNIQUE and + NOT NULL - and it uses that assumption to optimize queries against the + virtual table. + + + The rowid column is not accessible on a + WITHOUT ROWID virtual table (of course). + + + The xUpdate method was originally designed around having a + ROWID as a single value. The xUpdate method has been expanded to + accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the + PRIMARY KEY must still be only one column. For this reason, SQLite + will reject any WITHOUT ROWID virtual table that has more than one + PRIMARY KEY column and a non-NULL xUpdate method. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + int (*xConnect)(sqlite3*, void *pAux, + int argc, char *const*argv, + sqlite3_vtab **ppVTab, + char **pzErr); + + + The xConnect method is very similar to xCreate. + It has the same parameters and constructs a new sqlite3_vtab structure + just like xCreate. + And it must also call sqlite3_declare_vtab() like xCreate. It + should also make all of the same sqlite3_vtab_config() calls as + xCreate. + + + The difference is that xConnect is called to establish a new + connection to an existing virtual table whereas xCreate is called + to create a new virtual table from scratch. + + + The xCreate and xConnect methods are only different when the + virtual table has some kind of backing store that must be initialized + the first time the virtual table is created. The xCreate method creates + and initializes the backing store. The xConnect method just connects + to an existing backing store. When xCreate and xConnect are the same, + the table is an eponymous virtual table. + + + As an example, consider a virtual table implementation that + provides read-only access to existing comma-separated-value (CSV) + files on disk. There is no backing store that needs to be created + or initialized for such a virtual table (since the CSV files already + exist on disk) so the xCreate and xConnect methods will be identical + for that module. + + + Another example is a virtual table that implements a full-text index. + The xCreate method must create and initialize data structures to hold + the dictionary and posting lists for that index. The xConnect method, + on the other hand, only has to locate and use an existing dictionary + and posting lists that were created by a prior xCreate call. + + + The xConnect method must return SQLITE_OK if it is successful + in creating the new virtual table, or SQLITE_ERROR if it is not + successful. If not successful, the sqlite3_vtab structure must not be + allocated. An error message may optionally be returned in *pzErr if + unsuccessful. + Space to hold the error message string must be allocated using + an SQLite memory allocation function like + sqlite3_malloc() or sqlite3_mprintf() as the SQLite core will + attempt to free the space using sqlite3_free() after the error has + been reported up to the application. + + + The xConnect method is required for every virtual table implementation, + though the xCreate and xConnect pointers of the sqlite3_module object + may point to the same function if the virtual table does not need to + initialize backing store. + + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + + SQLite uses the xBestIndex method of a virtual table module to determine + the best way to access the virtual table. + The xBestIndex method has a prototype like this: + + + int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); + + + The SQLite core communicates with the xBestIndex method by filling + in certain fields of the sqlite3_index_info structure and passing a + pointer to that structure into xBestIndex as the second parameter. + The xBestIndex method fills out other fields of this structure which + forms the reply. The sqlite3_index_info structure looks like this: + + + struct sqlite3_index_info { + /* Inputs */ + const int nConstraint; /* Number of entries in aConstraint */ + const struct sqlite3_index_constraint { + int iColumn; /* Column constrained. -1 for ROWID */ + unsigned char op; /* Constraint operator */ + unsigned char usable; /* True if this constraint is usable */ + int iTermOffset; /* Used internally - xBestIndex should ignore */ + } *const aConstraint; /* Table of WHERE clause constraints */ + const int nOrderBy; /* Number of terms in the ORDER BY clause */ + const struct sqlite3_index_orderby { + int iColumn; /* Column number */ + unsigned char desc; /* True for DESC. False for ASC. */ + } *const aOrderBy; /* The ORDER BY clause */ + /* Outputs */ + struct sqlite3_index_constraint_usage { + int argvIndex; /* if >0, constraint is part of argv to xFilter */ + unsigned char omit; /* Do not code a test for this constraint */ + } *const aConstraintUsage; + int idxNum; /* Number used to identify the index */ + char *idxStr; /* String, possibly obtained from sqlite3_malloc */ + int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ + int orderByConsumed; /* True if output is already ordered */ + double estimatedCost; /* Estimated cost of using this index */ + ]]>/* Fields below are only available in SQLite 3.8.2 and later */]]> + sqlite3_int64 estimatedRows; /* Estimated number of rows returned */ + ]]>/* Fields below are only available in SQLite 3.9.0 and later */]]> + int idxFlags; /* Mask of SQLITE_INDEX_SCAN_* flags */ + ]]>/* Fields below are only available in SQLite 3.10.0 and later */]]> + sqlite3_uint64 colUsed; /* Input: Mask of columns used by statement */ + }; + + + Note the warnings on the "estimatedRows", "idxFlags", and colUsed fields. + These fields were added with SQLite versions 3.8.2, 3.9.0, and 3.10.0, respectively. + Any extension that reads or writes these fields must first check that the + version of the SQLite library in use is greater than or equal to appropriate + version - perhaps comparing the value returned from sqlite3_libversion_number() + against constants 3008002, 3009000, and/or 3010000. The result of attempting + to access these fields in an sqlite3_index_info structure created by an + older version of SQLite are undefined. + + + In addition, there are some defined constants: + + + #define SQLITE_INDEX_CONSTRAINT_EQ 2 + #define SQLITE_INDEX_CONSTRAINT_GT 4 + #define SQLITE_INDEX_CONSTRAINT_LE 8 + #define SQLITE_INDEX_CONSTRAINT_LT 16 + #define SQLITE_INDEX_CONSTRAINT_GE 32 + #define SQLITE_INDEX_CONSTRAINT_MATCH 64 + #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_LIMIT 73 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_OFFSET 74 /* 3.38.0 and later */ + #define SQLITE_INDEX_CONSTRAINT_FUNCTION 150 /* 3.25.0 and later */ + #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */ + + + Use the sqlite3_vtab_collation() interface to find the name of + the collating sequence that should be used when evaluating the i-th + constraint: + + + const char *sqlite3_vtab_collation(sqlite3_index_info*, int i); + + + The SQLite core calls the xBestIndex method when it is compiling a query + that involves a virtual table. In other words, SQLite calls this method + when it is running sqlite3_prepare() or the equivalent. + By calling this method, the + SQLite core is saying to the virtual table that it needs to access + some subset of the rows in the virtual table and it wants to know the + most efficient way to do that access. The xBestIndex method replies + with information that the SQLite core can then use to conduct an + efficient search of the virtual table. + + + While compiling a single SQL query, the SQLite core might call + xBestIndex multiple times with different settings in sqlite3_index_info. + The SQLite core will then select the combination that appears to + give the best performance. + + + Before calling this method, the SQLite core initializes an instance + of the sqlite3_index_info structure with information about the + query that it is currently trying to process. This information + derives mainly from the WHERE clause and ORDER BY or GROUP BY clauses + of the query, but also from any ON or USING clauses if the query is a + join. The information that the SQLite core provides to the xBestIndex + method is held in the part of the structure that is marked as "Inputs". + The "Outputs" section is initialized to zero. + + + The information in the sqlite3_index_info structure is ephemeral + and may be overwritten or deallocated as soon as the xBestIndex method + returns. If the xBestIndex method needs to remember any part of the + sqlite3_index_info structure, it should make a copy. Care must be + take to store the copy in a place where it will be deallocated, such + as in the idxStr field with needToFreeIdxStr set to 1. + + + Note that xBestIndex will always be called before xFilter, since + the idxNum and idxStr outputs from xBestIndex are required inputs to + xFilter. However, there is no guarantee that xFilter will be called + following a successful xBestIndex. + + + The xBestIndex method is required for every virtual table implementation. + + + The main thing that the SQLite core is trying to communicate to + the virtual table is the constraints that are available to limit + the number of rows that need to be searched. The aConstraint[] array + contains one entry for each constraint. There will be exactly + nConstraint entries in that array. + + + Each constraint will usually correspond to a term in the WHERE clause + or in a USING or ON clause that is of the form + + + column OP EXPR + + + Where "column" is a column in the virtual table, OP is an operator + like "=" or "<", and EXPR is an arbitrary expression. So, for example, + if the WHERE clause contained a term like this: + + + a = 5 + + + Then one of the constraints would be on the "a" column with + operator "=" and an expression of "5". Constraints need not have a + literal representation of the WHERE clause. The query optimizer might + make transformations to the + WHERE clause in order to extract as many constraints + as it can. So, for example, if the WHERE clause contained something + like this: + + + x BETWEEN 10 AND 100 AND 999>y + + + The query optimizer might translate this into three separate constraints: + + + x >= 10 + x <= 100 + y < 999 + + + For each such constraint, the aConstraint[].iColumn field indicates which + column appears on the left-hand side of the constraint. + The first column of the virtual table is column 0. + The rowid of the virtual table is column -1. + The aConstraint[].op field indicates which operator is used. + The SQLITE_INDEX_CONSTRAINT_* constants map integer constants + into operator values. + Columns occur in the order they were defined by the call to + sqlite3_declare_vtab() in the xCreate or xConnect method. + Hidden columns are counted when determining the column index. + + + If the xFindFunction() method for the virtual table is defined, and + if xFindFunction() sometimes returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, then the constraints might also be of the form: + + + FUNCTION( column, EXPR) + + + In this case the aConstraint[].op value is the same as the value + returned by xFindFunction() for FUNCTION. + + + The aConstraint[] array contains information about all constraints + that apply to the virtual table. But some of the constraints might + not be usable because of the way tables are ordered in a join. + The xBestIndex method must therefore only consider constraints + that have an aConstraint[].usable flag which is true. + + + In addition to WHERE clause constraints, the SQLite core also + tells the xBestIndex method about the ORDER BY clause. + (In an aggregate query, the SQLite core might put in GROUP BY clause + information in place of the ORDER BY clause information, but this fact + should not make any difference to the xBestIndex method.) + If all terms of the ORDER BY clause are columns in the virtual table, + then nOrderBy will be the number of terms in the ORDER BY clause + and the aOrderBy[] array will identify the column for each term + in the order by clause and whether or not that column is ASC or DESC. + + + In SQLite version 3.10.0 (2016-01-06) and later, + the colUsed field is available + to indicate which fields of the virtual table are actually used by the + statement being prepared. If the lowest bit of colUsed is set, that + means that the first column is used. The second lowest bit corresponds + to the second column. And so forth. If the most significant bit of + colUsed is set, that means that one or more columns other than the + first 63 columns are used. If column usage information is needed by the + xFilter method, then the required bits must be encoded into either + the output idxNum field or idxStr content. + + + For the LIKE, GLOB, REGEXP, and MATCH operators, the + aConstraint[].iColumn value is the virtual table column that + is the left operand of the operator. However, if these operators + are expressed as function calls instead of operators, then + the aConstraint[].iColumn value references the virtual table + column that is the second argument to that function: + + + LIKE(EXPR, column)]]> + GLOB(EXPR, column)]]> + REGEXP(EXPR, column)]]> + MATCH(EXPR, column)]]> + + + Hence, as far as the xBestIndex() method is concerned, the following + two forms are equivalent: + + + column LIKE EXPR]]> + LIKE(EXPR,column) + + + This special behavior of looking at the second argument of a function + only occurs for the LIKE, GLOB, REGEXP, and MATCH functions. For all + other functions, the aConstraint[].iColumn value references the first + argument of the function. + + + This special feature of LIKE, GLOB, REGEXP, and MATCH does not + apply to the xFindFunction() method, however. The + xFindFunction() method always keys off of the left operand of an + LIKE, GLOB, REGEXP, or MATCH operator but off of the first argument + to function-call equivalents of those operators. + + + When aConstraint[].op is one of SQLITE_INDEX_CONSTRAINT_LIMIT or + SQLITE_INDEX_CONSTRAINT_OFFSET, that indicates that there is a + LIMIT or OFFSET clause on the SQL query statement that is using + the virtual table. The LIMIT and OFFSET operators have no + left operand, and so when aConstraint[].op is one of + SQLITE_INDEX_CONSTRAINT_LIMIT or SQLITE_INDEX_CONSTRAINT_OFFSET + then the aConstraint[].iColumn value is meaningless and should + not be used. + + + The sqlite3_vtab_rhs_value() interface can be used to try to + access the right-hand operand of a constraint. However, the value + of a right-hand operator might not be known at the time that + the xBestIndex method is run, so the sqlite3_vtab_rhs_value() + call might not be successful. Usually the right operand of a + constraint is only available to xBestIndex if it is coded as + a literal value in the input SQL. If the right operand is + coded as an expression or a host parameter, it probably will + not be accessible to xBestIndex. Some operators, such as + SQLITE_INDEX_CONSTRAINT_ISNULL and + SQLITE_INDEX_CONSTRAINT_ISNOTNULL have no right-hand operand. + The sqlite3_vtab_rhs_value() interface always returns + SQLITE_NOTFOUND for such operators. + + + Given all of the information above, the job of the xBestIndex + method it to figure out the best way to search the virtual table. + + + The xBestIndex method conveys an indexing strategy to the xFilter + method through the idxNum and idxStr fields. The idxNum value and + idxStr string content are arbitrary as far as the SQLite core is + concerned and can have any meaning as long as xBestIndex and xFilter + agree on what that meaning is. The SQLite core just copies the + information from xBestIndex through to the xFilter method, assuming + only that the char sequence referenced via idxStr is NUL terminated. + + + The idxStr value may be a string obtained from an SQLite + memory allocation function such as sqlite3_mprintf(). + If this is the case, then the needToFreeIdxStr flag must be set to + true so that the SQLite core will know to call sqlite3_free() on + that string when it has finished with it, and thus avoid a memory leak. + The idxStr value may also be a static constant string, in which case + the needToFreeIdxStr boolean should remain false. + + + The estimatedCost field should be set to the estimated number + of disk access operations required to execute this query against + the virtual table. The SQLite core will often call xBestIndex + multiple times with different constraints, obtain multiple cost + estimates, then choose the query plan that gives the lowest estimate. + The SQLite core initializes estimatedCost to a very large value + prior to invoking xBestIndex, so if xBestIndex determines that the + current combination of parameters is undesirable, it can leave the + estimatedCost field unchanged to discourage its use. + + + If the current version of SQLite is 3.8.2 or greater, the estimatedRows + field may be set to an estimate of the number of rows returned by the + proposed query plan. If this value is not explicitly set, the default + estimate of 25 rows is used. + + + If the current version of SQLite is 3.9.0 or greater, the idxFlags field + may be set to SQLITE_INDEX_SCAN_UNIQUE to indicate that the virtual table + will return only zero or one rows given the input constraints. Additional + bits of the idxFlags field might be understood in later versions of SQLite. + + + The aConstraintUsage[] array contains one element for each of + the nConstraint constraints in the inputs section of the + sqlite3_index_info structure. + The aConstraintUsage[] array is used by xBestIndex to tell the + core how it is using the constraints. + + + The xBestIndex method may set aConstraintUsage[].argvIndex + entries to values greater than zero. + Exactly one entry should be set to 1, another to 2, another to 3, + and so forth up to as many or as few as the xBestIndex method wants. + The EXPR of the corresponding constraints will then be passed + in as the argv[] parameters to xFilter. + + + For example, if the aConstraint[3].argvIndex is set to 1, then + when xFilter is called, the argv[0] passed to xFilter will have + the EXPR value of the aConstraint[3] constraint. + + + By default, the SQLite generates bytecode that will double + checks all constraints on each row of the virtual table to verify + that they are satisfied. If the virtual table can guarantee + that a constraint will always be satisfied, it can try to + suppress that double-check by setting aConstraintUsage[].omit. + However, with some exceptions, this is only a hint and + there is no guarantee that the redundant check of the constraint + will be suppressed. Key points: + + ]]> + ]]> + The omit flag is only honored if the argvIndex value for the + constraint is greater than 0 and less than or equal to 16. + Constraint checking is never suppressed for constraints + that do not pass their right operand into the xFilter method. + The current implementation is only able to suppress redundant + constraint checking for the first 16 values passed to xFilter, + though that limitation might be increased in future releases. + ]]>]]> + The omit flag is always honored for SQLITE_INDEX_CONSTRAINT_OFFSET + constraints as long as argvIndex is greater than 0. Setting the + omit flag on an SQLITE_INDEX_CONSTRAINT_OFFSET constraint indicates + to SQLite that the virtual table will itself suppress the first N + rows of output, where N is the right operand of the OFFSET operator. + If the virtual table implementation sets omit on an + SQLITE_INDEX_CONSTRAINT_OFFSET constraint but then fails to suppress + the first N rows of output, an incorrect answer will result from + the overall query. + ]]>]]> + + If the virtual table will output rows in the order specified by + the ORDER BY clause, then the orderByConsumed flag may be set to + true. If the output is not automatically in the correct order + then orderByConsumed must be left in its default false setting. + This will indicate to the SQLite core that it will need to do a + separate sorting pass over the data after it comes out of the virtual table. + Setting orderByConsumed is an optimization. A query will always + get the correct answer if orderByConsumed is left at its default + value (0). Unnecessary sort operations might be avoided resulting + in a faster query if orderByConsumed is set, but setting + orderByConsumed incorrectly can result in an incorrect answer. + It is suggested that new virtual table implementations leave + the orderByConsumed value unset initially, and then after everything + else is known to be working correctly, go back and attempt to + optimize by setting orderByConsumed where appropriate. + + + Sometimes the orderByConsumed flag can be safely set even if + the outputs from the virtual table are not strictly in the order + specified by nOrderBy and aOrderBy. If the + sqlite3_vtab_distinct() interface returns 1 or 2, that indicates + that the ordering can be relaxed. See the documentation on + sqlite3_vtab_distinct() for further information. + + + The xBestIndex method should return SQLITE_OK on success. If any + kind of fatal error occurs, an appropriate error code (ex: SQLITE_NOMEM) + should be returned instead. + + + If xBestIndex returns SQLITE_CONSTRAINT, that does not indicate an + error. Rather, SQLITE_CONSTRAINT indicates that the particular combination + of input parameters specified is insufficient for the virtual table + to do its job. + This is logically the same as setting the estimatedCost to infinity. + If every call to xBestIndex for a particular query plan returns + SQLITE_CONSTRAINT, that means there is no way for the virtual table + to be safely used, and the sqlite3_prepare() call will fail with + a "no query solution" error. + + + The SQLITE_CONSTRAINT return from xBestIndex + is useful for table-valued functions that + have required parameters. If the aConstraint[].usable field is false + for one of the required parameter, then the xBestIndex method should + return SQLITE_CONSTRAINT. If a required field does not appear in + the aConstraint[] array at all, that means that the corresponding + parameter is omitted from the input SQL. In that case, xBestIndex + should set an error message in pVTab->zErrMsg and return + SQLITE_ERROR. To summarize: + + ]]> + ]]> + The aConstraint[].usable value for a required parameter is + false → return SQLITE_CONSTRAINT. + ]]>]]> + A required parameter does not appears anywhere in + the aConstraint[] array → + Set an error message in pVTab->zErrMsg and return + SQLITE_ERROR + ]]>]]> + + The following example will better illustrate the use of SQLITE_CONSTRAINT + as a return value from xBestIndex: + + + SELECT * FROM realtab, tablevaluedfunc(realtab.x); + + + Assuming that the first hidden column of "tablevaluedfunc" is "param1", + the query above is semantically equivalent to this: + + + SELECT * FROM realtab, tablevaluedfunc + WHERE tablevaluedfunc.param1 = realtab.x; + + + The query planner must decide between many possible implementations + of this query, but two plans in particular are of note: + + ]]> + ]]>Scan all + rows of realtab and for each row, find rows in tablevaluedfunc where + param1 is equal to realtab.x + ]]>]]>Scan all rows of tablevalued func and for each row find rows + in realtab where x is equal to tablevaluedfunc.param1. + ]]>]]> + + The xBestIndex method will be invoked once for each of the potential + plans above. For plan 1, the aConstraint[].usable flag for the + SQLITE_CONSTRAINT_EQ constraint on the param1 column will be true because + the right-hand side value for the "param1 = ?" constraint will be known, + since it is determined by the outer realtab loop. + But for plan 2, the aConstraint[].usable flag for "param1 = ?" will be false + because the right-hand side value is determined by an inner loop and is thus + an unknown quantity. Because param1 is a required input to the table-valued + functions, the xBestIndex method should return SQLITE_CONSTRAINT when presented + with plan 2, indicating that a required input is missing. This forces the + query planner to select plan 1. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_index_info structure. + + + A standard SQLite return code. + + + + + + int (*xDisconnect)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table. + Only the sqlite3_vtab object is destroyed. + The virtual table is not destroyed and any backing store + associated with the virtual table persists. + + This method undoes the work of xConnect. + + This method is a destructor for a connection to the virtual table. + Contrast this method with xDestroy. The xDestroy is a destructor + for the entire virtual table. + + + The xDisconnect method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xDestroy)(sqlite3_vtab *pVTab); + + + This method releases a connection to a virtual table, just like + the xDisconnect method, and it also destroys the underlying + table implementation. This method undoes the work of xCreate. + + + The xDisconnect method is called whenever a database connection + that uses a virtual table is closed. The xDestroy method is only + called when a DROP TABLE statement is executed against the virtual table. + + + The xDestroy method is required for every virtual table implementation, + though it is acceptable for the xDisconnect and xDestroy methods to be + the same function if that makes sense for the particular virtual table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); + + + The xOpen method creates a new cursor used for accessing (read and/or + writing) a virtual table. A successful invocation of this method + will allocate the memory for the sqlite3_vtab_cursor (or a subclass), + initialize the new object, and make *ppCursor point to the new object. + The successful call then returns SQLITE_OK. + + + For every successful call to this method, the SQLite core will + later invoke the xClose method to destroy + the allocated cursor. + + + The xOpen method need not initialize the pVtab field of the + sqlite3_vtab_cursor structure. The SQLite core will take care + of that chore automatically. + + + A virtual table implementation must be able to support an arbitrary + number of simultaneously open cursors. + + + When initially opened, the cursor is in an undefined state. + The SQLite core will invoke the xFilter method + on the cursor prior to any attempt to position or read from the cursor. + + + The xOpen method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab derived structure. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xClose)(sqlite3_vtab_cursor*); + + + The xClose method closes a cursor previously opened by + xOpen. + The SQLite core will always call xClose once for each cursor opened + using xOpen. + + + This method must release all resources allocated by the + corresponding xOpen call. The routine will not be called again even if it + returns an error. The SQLite core will not use the + sqlite3_vtab_cursor again after it has been closed. + + + The xClose method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, + int argc, sqlite3_value **argv); + + + This method begins a search of a virtual table. + The first argument is a cursor opened by xOpen. + The next two arguments define a particular search index previously + chosen by xBestIndex. The specific meanings of idxNum and idxStr + are unimportant as long as xFilter and xBestIndex agree on what + that meaning is. + + + The xBestIndex function may have requested the values of + certain expressions using the aConstraintUsage[].argvIndex values + of the sqlite3_index_info structure. + Those values are passed to xFilter using the argc and argv parameters. + + + If the virtual table contains one or more rows that match the + search criteria, then the cursor must be left point at the first row. + Subsequent calls to xEof must return false (zero). + If there are no rows match, then the cursor must be left in a state + that will cause the xEof to return true (non-zero). + The SQLite engine will use + the xColumn and xRowid methods to access that row content. + The xNext method will be used to advance to the next row. + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xFilter method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Number used to help identify the selected index. + + + The native pointer to the UTF-8 encoded string containing the + string used to help identify the selected index. + + + The number of native pointers to sqlite3_value structures specified + in . + + + An array of native pointers to sqlite3_value structures containing + filtering criteria for the selected index. + + + A standard SQLite return code. + + + + + + int (*xNext)(sqlite3_vtab_cursor*); + + + The xNext method advances a virtual table cursor + to the next row of a result set initiated by xFilter. + If the cursor is already pointing at the last row when this + routine is called, then the cursor no longer points to valid + data and a subsequent call to the xEof method must return true (non-zero). + If the cursor is successfully advanced to another row of content, then + subsequent calls to xEof must return false (zero). + + + This method must return SQLITE_OK if successful, or an sqlite + error code if an error occurs. + + + The xNext method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + A standard SQLite return code. + + + + + + int (*xEof)(sqlite3_vtab_cursor*); + + + The xEof method must return false (zero) if the specified cursor + currently points to a valid row of data, or true (non-zero) otherwise. + This method is called by the SQL engine immediately after each + xFilter and xNext invocation. + + + The xEof method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Non-zero if no more rows are available; zero otherwise. + + + + + + int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int N); + + + The SQLite core invokes this method in order to find the value for + the N-th column of the current row. N is zero-based so the first column + is numbered 0. + The xColumn method may return its result back to SQLite using one of the + following interface: + + + ]]> + ]]> sqlite3_result_blob() + ]]>]]> sqlite3_result_double() + ]]>]]> sqlite3_result_int() + ]]>]]> sqlite3_result_int64() + ]]>]]> sqlite3_result_null() + ]]>]]> sqlite3_result_text() + ]]>]]> sqlite3_result_text16() + ]]>]]> sqlite3_result_text16le() + ]]>]]> sqlite3_result_text16be() + ]]>]]> sqlite3_result_zeroblob() + ]]>]]> + + + If the xColumn method implementation calls none of the functions above, + then the value of the column defaults to an SQL NULL. + + + To raise an error, the xColumn method should use one of the result_text() + methods to set the error message text, then return an appropriate + error code. The xColumn method must return SQLITE_OK on success. + + + The xColumn method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_context structure to be used + for returning the specified column value to the SQLite core + library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + + int (*xRowid)(sqlite3_vtab_cursor *pCur, sqlite_int64 *pRowid); + + + A successful invocation of this method will cause *pRowid to be + filled with the rowid of row that the + virtual table cursor pCur is currently pointing at. + This method returns SQLITE_OK on success. + It returns an appropriate error code on failure. + + + The xRowid method is required for every virtual table implementation. + + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + + int (*xUpdate)( + sqlite3_vtab *pVTab, + int argc, + sqlite3_value **argv, + sqlite_int64 *pRowid + ); + + + All changes to a virtual table are made using the xUpdate method. + This one method can be used to insert, delete, or update. + + + The argc parameter specifies the number of entries in the argv array. + The value of argc will be 1 for a pure delete operation or N+2 for an insert + or replace or update where N is the number of columns in the table. + In the previous sentence, N includes any hidden columns. + + + Every argv entry will have a non-NULL value in C but may contain the + SQL value NULL. In other words, it is always true that + ]]>argv[i]!=0]]> for ]]>i]]> between 0 and ]]>argc-1]]>. + However, it might be the case that + ]]>sqlite3_value_type(argv[i])==SQLITE_NULL]]>. + + + The argv[0] parameter is the rowid of a row in the virtual table + to be deleted. If argv[0] is an SQL NULL, then no deletion occurs. + + + The argv[1] parameter is the rowid of a new row to be inserted + into the virtual table. If argv[1] is an SQL NULL, then the implementation + must choose a rowid for the newly inserted row. Subsequent argv[] + entries contain values of the columns of the virtual table, in the + order that the columns were declared. The number of columns will + match the table declaration that the xConnect or xCreate method made + using the sqlite3_declare_vtab() call. All hidden columns are included. + + + When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), + on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table), + the implementation must set *pRowid to the rowid of the newly inserted row; + this will become the value returned by the sqlite3_last_insert_rowid() + function. Setting this value in all the other cases is a harmless no-op; + the SQLite engine ignores the *pRowid return value if argc==1 or + argv[1] is not an SQL NULL. + + + Each call to xUpdate will fall into one of cases shown below. + Not that references to ]]>argv[i]]]> mean the SQL value + held within the argv[i] object, not the argv[i] + object itself. + + + ]]> + ]]>]]>argc = 1 ]]> argv[0] ≠ NULL]]> + ]]>]]> + DELETE: The single row with rowid or PRIMARY KEY equal to argv[0] is deleted. + No insert occurs. + ]]>]]>]]>argc > 1 ]]> argv[0] = NULL]]> + ]]>]]> + INSERT: A new row is inserted with column values taken from + argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL, + then a new unique rowid is generated automatically. The argv[1] will be NULL + for a WITHOUT ROWID virtual table, in which case the implementation should + take the PRIMARY KEY value from the appropriate column in argv[2] and following. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] = argv[1]]]> + ]]>]]> + UPDATE: + The row with rowid or PRIMARY KEY argv[0] is updated with new values + in argv[2] and following parameters. + ]]>]]>]]>argc > 1 ]]> argv[0] ≠ NULL ]]> argv[0] ≠ argv[1]]]> + ]]>]]> + UPDATE with rowid or PRIMARY KEY change: + The row with rowid or PRIMARY KEY argv[0] is updated with + the rowid or PRIMARY KEY in argv[1] + and new values in argv[2] and following parameters. This will occur + when an SQL statement updates a rowid, as in the statement: + + UPDATE table SET rowid=rowid+1 WHERE ...; + + ]]>]]> + + + The xUpdate method must return SQLITE_OK if and only if it is + successful. If a failure occurs, the xUpdate must return an appropriate + error code. On a failure, the pVTab->zErrMsg element may optionally + be replaced with error message text stored in memory allocated from SQLite + using functions such as sqlite3_mprintf() or sqlite3_malloc(). + + + If the xUpdate method violates some constraint of the virtual table + (including, but not limited to, attempting to store a value of the wrong + datatype, attempting to store a value that is too + large or too small, or attempting to change a read-only value) then the + xUpdate must fail with an appropriate error code. + + + If the xUpdate method is performing an UPDATE, then + sqlite3_value_nochange(X) can be used to discover which columns + of the virtual table were actually modified by the UPDATE + statement. The sqlite3_value_nochange(X) interface returns + true for columns that do not change. + On every UPDATE, SQLite will first invoke + xColumn separately for each unchanging column in the table to + obtain the value for that column. The xColumn method can + check to see if the column is unchanged at the SQL level + by invoking sqlite3_vtab_nochange(). If xColumn sees that + the column is not being modified, it should return without setting + a result using one of the sqlite3_result_xxxxx() + interfaces. Only in that case sqlite3_value_nochange() will be + true within the xUpdate method. If xColumn does + invoke one or more sqlite3_result_xxxxx() + interfaces, then SQLite understands that as a change in the value + of the column and the sqlite3_value_nochange() call for that + column within xUpdate will return false. + + + There might be one or more sqlite3_vtab_cursor objects open and in use + on the virtual table instance and perhaps even on the row of the virtual + table when the xUpdate method is invoked. The implementation of + xUpdate must be prepared for attempts to delete or modify rows of the table + out from other existing cursors. If the virtual table cannot accommodate + such changes, the xUpdate method must return an error code. + + + The xUpdate method is optional. + If the xUpdate pointer in the sqlite3_module for a virtual table + is a NULL pointer, then the virtual table is read-only. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of new or modified column values contained in + . + + + The array of native pointers to sqlite3_value structures containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + + int (*xBegin)(sqlite3_vtab *pVTab); + + + This method begins a transaction on a virtual table. + This is method is optional. The xBegin pointer of sqlite3_module + may be NULL. + + + This method is always followed by one call to either the + xCommit or xRollback method. Virtual table transactions do + not nest, so the xBegin method will not be invoked more than once + on a single virtual table + without an intervening call to either xCommit or xRollback. + Multiple calls to other methods can and likely will occur in between + the xBegin and the corresponding xCommit or xRollback. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xSync)(sqlite3_vtab *pVTab); + + + This method signals the start of a two-phase commit on a virtual + table. + This is method is optional. The xSync pointer of sqlite3_module + may be NULL. + + + This method is only invoked after call to the xBegin method and + prior to an xCommit or xRollback. In order to implement two-phase + commit, the xSync method on all virtual tables is invoked prior to + invoking the xCommit method on any virtual table. If any of the + xSync methods fail, the entire transaction is rolled back. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xCommit)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to commit. + This is method is optional. The xCommit pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin and + xSync. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xRollback)(sqlite3_vtab *pVTab); + + + This method causes a virtual table transaction to rollback. + This is method is optional. The xRollback pointer of sqlite3_module + may be NULL. + + + A call to this method always follows a prior call to xBegin. + + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + + int (*xFindFunction)( + sqlite3_vtab *pVtab, + int nArg, + const char *zName, + void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), + void **ppArg + ); + + + This method is called during sqlite3_prepare() to give the virtual + table implementation an opportunity to overload functions. + This method may be set to NULL in which case no overloading occurs. + + + When a function uses a column from a virtual table as its first + argument, this method is called to see if the virtual table would + like to overload the function. The first three parameters are inputs: + the virtual table, the number of arguments to the function, and the + name of the function. If no overloading is desired, this method + returns 0. To overload the function, this method writes the new + function implementation into *pxFunc and writes user data into *ppArg + and returns either 1 or a number between + SQLITE_INDEX_CONSTRAINT_FUNCTION and 255. + + + Historically, the return value from xFindFunction() was either zero + or one. Zero means that the function is not overloaded and one means that + it is overload. The ability to return values of + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater was added in + version 3.25.0 (2018-09-15). If xFindFunction returns + SQLITE_INDEX_CONSTRAINT_FUNCTION or greater, than means that the function + takes two arguments and the function + can be used as a boolean in the WHERE clause of a query and that + the virtual table is able to exploit that function to speed up the query + result. When xFindFunction returns SQLITE_INDEX_CONSTRAINT_FUNCTION or + larger, the value returned becomes the sqlite3_index_info.aConstraint.op + value for one of the constraints passed into xBestIndex(). The first + argument to the function is the column identified by + aConstraint[].iColumn field of the constraint and the second argument to the + function is the value that will be passed into xFilter() (if the + aConstraintUsage[].argvIndex value is set) or the value returned from + sqlite3_vtab_rhs_value(). + + + The Geopoly module is an example of a virtual table that makes use + of SQLITE_INDEX_CONSTRAINT_FUNCTION to improve performance. + The xFindFunction() method for Geopoly returns + SQLITE_INDEX_CONSTRAINT_FUNCTION for the geopoly_overlap() SQL function + and it returns + SQLITE_INDEX_CONSTRAINT_FUNCTION+1 for the geopoly_within() SQL function. + This permits search optimizations for queries such as: + + + SELECT * FROM geopolytab WHERE geopoly_overlap(_shape, $query_polygon); + SELECT * FROM geopolytab WHERE geopoly_within(_shape, $query_polygon); + + + Note that infix functions (LIKE, GLOB, REGEXP, and MATCH) reverse + the order of their arguments. So "like(A,B)" would normally work the same + as "B like A". + However, xFindFunction() always looks a the left-most argument, not + the first logical argument. + Hence, for the form "B like A", SQLite looks at the + left operand "B" and if that operand is a virtual table column + it invokes the xFindFunction() method on that virtual table. + But if the form "like(A,B)" is used instead, then SQLite checks + the A term to see if it is column of a virtual table and if so + it invokes the xFindFunction() method for the virtual table of + column A. + + + The function pointer returned by this routine must be valid for + the lifetime of the sqlite3_vtab object given in the first parameter. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + delegate responsible for implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + + int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); + + + This method provides notification that the virtual table implementation + that the virtual table will be given a new name. + If this method returns SQLITE_OK then SQLite renames the table. + If this method returns an error code then the renaming is prevented. + + + The xRename method is optional. If omitted, then the virtual + table may not be renamed using the ALTER TABLE RENAME command. + + + The PRAGMA legacy_alter_table setting is enabled prior to invoking this + method, and the value for legacy_alter_table is restored after this + method finishes. This is necessary for the correct operation of virtual + tables that make use of shadow tables where the shadow tables must be + renamed to match the new virtual table name. If the legacy_alter_format is + off, then the xConnect method will be invoked for the virtual table every + time the xRename method tries to change the name of the shadow table. + + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the UTF-8 encoded string containing the new + name for the virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + + int (*xSavepoint)(sqlite3_vtab *pVtab, int); + int (*xRelease)(sqlite3_vtab *pVtab, int); + int (*xRollbackTo)(sqlite3_vtab *pVtab, int); + + + These methods provide the virtual table implementation an opportunity to + implement nested transactions. They are always optional and will only be + called in SQLite version 3.7.7 (2011-06-23) and later. + + + When xSavepoint(X,N) is invoked, that is a signal to the virtual table X + that it should save its current state as savepoint N. + A subsequent call + to xRollbackTo(X,R) means that the state of the virtual table should return + to what it was when xSavepoint(X,R) was last called. + The call + to xRollbackTo(X,R) will invalidate all savepoints with N>R; none of the + invalided savepoints will be rolled back or released without first + being reinitialized by a call to xSavepoint(). + A call to xRelease(X,M) invalidates all savepoints where N>=M. + + + None of the xSavepoint(), xRelease(), or xRollbackTo() methods will ever + be called except in between calls to xBegin() and + either xCommit() or xRollback(). + + + + The native pointer to the sqlite3_vtab derived structure. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class represents a context from the SQLite core library that can + be passed to the sqlite3_result_*() and associated functions. + + + + + The native context handle. + + + + + Constructs an instance of this class using the specified native + context handle. + + + The native context handle to use. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Attempts to determine if a specific column being fetched via the + method as part of an + UPDATE operation will not change. Use of this method is invalid + in any other context. + + + Non-zero if the column being fetched via a pending call to the + method as part of an + UPDATE operation during which the column value will not change. + The virtual table implementation can use this hint as permission + to substitute a return value that is less expensive to compute + and that the corresponding xUpdate method understands as a + "no-change" value. + + + + + Sets the context result to NULL. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to the specified + value. + + + The value to use. This value will be + converted to the UTF-8 encoding prior to being used. + + + + + Sets the context result to the specified + value containing an error message. + + + The value containing the error message text. + This value will be converted to the UTF-8 encoding prior to being + used. + + + + + Sets the context result to the specified + value. + + + The value to use. + + + + + Sets the context result to contain the error code SQLITE_TOOBIG. + + + + + Sets the context result to contain the error code SQLITE_NOMEM. + + + + + Sets the context result to the specified array + value. + + + The array value to use. + + + + + Sets the context result to a BLOB of zeros of the specified size. + + + The number of zero bytes to use for the BLOB context result. + + + + + Sets the context result sub-type to the desired value. + + + The sub-type value to use. + + + + + Sets the context result to the specified . + + + The to use. + + + + + This class represents a value from the SQLite core library that can be + passed to the sqlite3_value_*() and associated functions. + + + + + The native value handle. + + + + + Constructs an instance of this class using the specified native + value handle. + + + The native value handle to use. + + + + + Invalidates the native value handle, thereby preventing further + access to it from this object instance. + + + + + Converts a native pointer to a native sqlite3_value structure into + a managed object instance. + + + The native pointer to a native sqlite3_value structure to convert. + + + The managed object instance or null upon + failure. + + + + + Converts a logical array of native pointers to native sqlite3_value + structures into a managed array of + object instances. + + + The number of elements in the logical array of native sqlite3_value + structures. + + + The native pointer to the logical array of native sqlite3_value + structures to convert. + + + The managed array of object instances or + null upon failure. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Returns non-zero if the native SQLite value has been successfully + persisted as a managed value within this object instance (i.e. the + property may then be read successfully). + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that value is returned; otherwise, an exception is thrown. The + returned value may be null. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that sub-type is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "no change" flag is returned; otherwise, an exception is thrown. + + + + + If the managed value for this object instance is available (i.e. it + has been previously persisted via the ) method, + that "from bind" flag is returned; otherwise, an exception is thrown. + + + + + Gets and returns the sub-type associated with this value. + + + The sub-type associated with this value. + + + + + Gets and returns the "no change" flag associated with this value. + + + The "no change" flag associated with this value. + + + + + Gets and returns the "from bind" flag associated with this value. + + + The "from bind" flag associated with this value. + + + + + Attempts to convert this value to numeric and then gets and + returns the new type affinity associated with this value. + + + The new type affinity associated with this value. + + + + + Gets and returns the type affinity associated with this value. + + + The type affinity associated with this value. + + + + + Gets and returns the number of bytes associated with this value, if + it refers to a UTF-8 encoded string. + + + The number of bytes associated with this value. The returned value + may be zero. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with + this value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. + + + + + Gets and returns the associated with this + value. + + + The associated with this value. The value is + converted from the UTF-8 encoding prior to being returned. + + + + + Gets and returns the array associated with this + value. + + + The array associated with this value. + + + + + Gets and returns an instance associated with + this value. + + + The associated with this value. If the type + affinity of the object is unknown or cannot be determined, a null + value will be returned. + + + + + Uses the native value handle to obtain and store the managed value + for this object instance, thus saving it for later use. The type + of the managed value is determined by the type affinity of the + native value. If the type affinity is not recognized by this + method, no work is done and false is returned. + + + Non-zero if the native value was persisted successfully. + + + + + These are the allowed values for the operators that are part of a + constraint term in the WHERE clause of a query that uses a virtual + table. + + + + + This value represents the equality operator. + + + + + This value represents the greater than operator. + + + + + This value represents the less than or equal to operator. + + + + + This value represents the less than operator. + + + + + This value represents the greater than or equal to operator. + + + + + This value represents the MATCH operator. + + + + + This value represents the LIKE operator. + + + + + This value represents the GLOB operator. + + + + + This value represents the REGEXP operator. + + + + + This value represents the inequality operator. + + + + + This value represents the IS NOT operator. + + + + + This value represents the IS NOT NULL operator. + + + + + This value represents the IS NULL operator. + + + + + This value represents the IS operator. + + + + + These are the allowed values for the index flags from the + method. + + + + + No special handling. This is the default. + + + + + This value indicates that the scan of the index will visit at + most one row. + + + + + This class represents the native sqlite3_index_constraint structure + from the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint structure. + + + The native sqlite3_index_constraint structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column on left-hand side of constraint. + + + Constraint operator (). + + + True if this constraint is usable. + + + Used internally - + should ignore. + + + + + Column on left-hand side of constraint. + + + + + Constraint operator (). + + + + + True if this constraint is usable. + + + + + Used internally - + should ignore. + + + + + This class represents the native sqlite3_index_orderby structure from + the SQLite core library. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_orderby structure. + + + The native sqlite3_index_orderby structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + Column number. + + + True for DESC. False for ASC. + + + + + Column number. + + + + + True for DESC. False for ASC. + + + + + This class represents the native sqlite3_index_constraint_usage + structure from the SQLite core library. + + + + + Constructs a default instance of this class. + + + + + Constructs an instance of this class using the specified native + sqlite3_index_constraint_usage structure. + + + The native sqlite3_index_constraint_usage structure to use. + + + + + Constructs an instance of this class using the specified field + values. + + + If greater than 0, constraint is part of argv to xFilter. + + + Do not code a test for this constraint. + + + + + If greater than 0, constraint is part of argv to xFilter. + + + + + Do not code a test for this constraint. + + + + + This class represents the various inputs provided by the SQLite core + library to the method. + + + + + Constructs an instance of this class. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + An array of object instances, + each containing information supplied by the SQLite core library. + + + + + This class represents the various outputs provided to the SQLite core + library by the method. + + + + + Constructs an instance of this class. + + + The number of instances + to pre-allocate space for. + + + + + Determines if the native estimatedRows field can be used, based on + the available version of the SQLite core library. + + + Non-zero if the property is supported + by the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + Determines if the native flags field can be used, based on the + available version of the SQLite core library. + + + Non-zero if the property is supported by + the SQLite core library. + + + + + An array of object + instances, each containing information to be supplied to the SQLite + core library. + + + + + Number used to help identify the selected index. This value will + later be provided to the + method. + + + + + String used to help identify the selected index. This value will + later be provided to the + method. + + + + + Non-zero if the index string must be freed by the SQLite core + library. + + + + + True if output is already ordered. + + + + + Estimated cost of using this index. Using a null value here + indicates that a default estimated cost value should be used. + + + + + Estimated number of rows returned. Using a null value here + indicates that a default estimated rows value should be used. + This property has no effect if the SQLite core library is not at + least version 3.8.2. + + + + + The flags that should be used with this index. Using a null value + here indicates that a default flags value should be used. This + property has no effect if the SQLite core library is not at least + version 3.9.0. + + + + + + Indicates which columns of the virtual table may be required by the + current scan. Virtual table columns are numbered from zero in the + order in which they appear within the CREATE TABLE statement passed + to sqlite3_declare_vtab(). For the first 63 columns (columns 0-62), + the corresponding bit is set within the bit mask if the column may + be required by SQLite. If the table has at least 64 columns and + any column to the right of the first 63 is required, then bit 63 of + colUsed is also set. In other words, column iCol may be required + if the expression + + + (colUsed & ((sqlite3_uint64)1 << (iCol>=63 ? 63 : iCol))) + + + evaluates to non-zero. Using a null value here indicates that a + default flags value should be used. This property has no effect if + the SQLite core library is not at least version 3.10.0. + + + + + + This class represents the various inputs and outputs used with the + method. + + + + + Constructs an instance of this class. + + + The number of (and + ) instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + + + Attempts to determine the structure sizes needed to create and + populate a native + + structure. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + The size of the native + + structure is stored here. + + + + + Attempts to allocate and initialize a native + + structure. + + + The number of instances to + pre-allocate space for. + + + The number of instances to + pre-allocate space for. + + + The newly allocated native + structure + -OR- if it could not be fully allocated. + + + + + Frees all the memory associated with a native + + structure. + + + The native pointer to the native sqlite3_index_info structure to + free. + + + + + Converts a native pointer to a native sqlite3_index_info structure + into a new object instance. + + + The native pointer to the native sqlite3_index_info structure to + convert. + + + Non-zero to include fields from the outputs portion of the native + structure; otherwise, the "output" fields will not be read. + + + Upon success, this parameter will be modified to contain the newly + created object instance. + + + + + Populates the outputs of a pre-allocated native sqlite3_index_info + structure using an existing object + instance. + + + The existing object instance containing + the output data to use. + + + The native pointer to the pre-allocated native sqlite3_index_info + structure. + + + Non-zero to include fields from the inputs portion of the native + structure; otherwise, the "input" fields will not be written. + + + + + The object instance containing + the inputs to the + method. + + + + + The object instance containing + the outputs from the + method. + + + + + This class represents a managed virtual table implementation. It is + not sealed and should be used as the base class for any user-defined + virtual table classes implemented in managed code. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the module implementing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the database containing this virtual table. + + + + + The index within the array of strings provided to the + and + methods containing the + name of the virtual table. + + + + + Constructs an instance of this class. + + + The original array of strings provided to the + and + methods. + + + + + The original array of strings provided to the + and + methods. + + + + + The name of the module implementing this virtual table. + + + + + The name of the database containing this virtual table. + + + + + The name of the virtual table. + + + + + The object instance containing all the + data for the inputs and outputs relating to the most recent index + selection. + + + + + This method should normally be used by the + method in order to + perform index selection based on the constraints provided by the + SQLite core library. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + Non-zero upon success. + + + + + Attempts to record the renaming of the virtual table associated + with this object instance. + + + The new name for the virtual table. + + + Non-zero upon success. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + This class represents a managed virtual table cursor implementation. + It is not sealed and should be used as the base class for any + user-defined virtual table cursor classes implemented in managed code. + + + + + This value represents an invalid integer row sequence number. + + + + + The field holds the integer row sequence number for the current row + pointed to by this cursor object instance. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + + + Constructs an instance of this class. + + + + + The object instance associated + with this object instance. + + + + + Number used to help identify the selected index. This value will + be set via the method. + + + + + String used to help identify the selected index. This value will + be set via the method. + + + + + The values used to filter the rows returned via this cursor object + instance. This value will be set via the + method. + + + + + Attempts to persist the specified object + instances in order to make them available after the + method returns. + + + The array of object instances to be + persisted. + + + The number of object instances that were + successfully persisted. + + + + + This method should normally be used by the + method in order to + perform filtering of the result rows and/or to record the filtering + criteria provided by the SQLite core library. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + + + Determines the integer row sequence number for the current row. + + + The integer row sequence number for the current row -OR- zero if + it cannot be determined. + + + + + Adjusts the integer row sequence number so that it refers to the + next row. + + + + + Returns the underlying SQLite native handle associated with this + object instance. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being called + from the finalizer. + + + + + Finalizes this object instance. + + + + + This interface represents a native handle provided by the SQLite core + library. + + + + + The native handle value. + + + + + This interface represents a virtual table implementation written in + managed code. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + This class contains static methods that are used to allocate, + manipulate, and free native memory provided by the SQLite core library. + + + + + This object instance is used to synchronize access to the other + static fields of this class. + + + + + The total number of outstanding memory bytes allocated by this + class using the SQLite core library. + + + + + The maximum number of outstanding memory bytes ever allocated by + this class using the SQLite core library. + + + + + Attempts to determine the size of the specified memory block. If + the method can be used, the returned value + may be larger than . A message may + be sent to the logging subsystem if an error is encountered. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The size of the specified memory block -OR- zero if the 32-bit + signed value reported from the native API was less than zero. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + increased by the total size of the memory block pointed to by + . If the new total number exceeds + the previously seen maximum, the maximum will be reset. + + + A native pointer to newly allocated memory. + + + + + Adjusts the total number of (tracked) bytes that are currently + considered to be allocated by this class. The total number is + decreased by the total size of the memory block pointed to by + . + + + A native pointer to allocated memory that is going to be freed. + + + + + Determines if the native sqlite3_msize() API can be used, based on + the available version of the SQLite core library. + + + Non-zero if the native sqlite3_msize() API is supported by the + SQLite core library. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer. If the TRACK_MEMORY_BYTES option + was enabled at compile-time, adjusts the number of bytes currently + allocated by this class. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Allocates at least the specified number of bytes of native memory + via the SQLite core library sqlite3_malloc64() function and returns + the resulting native pointer without adjusting the number of + allocated bytes currently tracked by this class. This is useful + when dealing with blocks of memory that will be freed directly by + the SQLite core library. + + + The number of bytes to allocate. + + + The native pointer that points to a block of memory of at least the + specified size -OR- if the memory could + not be allocated. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Gets and returns the actual size of the specified memory block + that was previously obtained from the , + , , or + methods or directly from the + SQLite core library. + + + The native pointer to the memory block previously obtained from + the , , + , or + methods or directly from the + SQLite core library. + + + The actual size, in bytes, of the memory block specified via the + native pointer. + + + + + Frees a memory block previously obtained from the + or methods. If + the TRACK_MEMORY_BYTES option was enabled at compile-time, adjusts + the number of bytes currently allocated by this class. + + + The native pointer to the memory block previously obtained from the + or methods. + + + + + Frees a memory block previously obtained from the SQLite core + library without adjusting the number of allocated bytes currently + tracked by this class. This is useful when dealing with blocks of + memory that were not allocated using this class. + + + The native pointer to the memory block previously obtained from the + SQLite core library. + + + + + This class contains static methods that are used to deal with native + UTF-8 string pointers to be used with the SQLite core library. + + + + + This is the maximum possible length for the native UTF-8 encoded + strings used with the SQLite core library. + + + + + This is the object instance used to handle + conversions from/to UTF-8. + + + + + Converts the specified managed string into the UTF-8 encoding and + returns the array of bytes containing its representation in that + encoding. + + + The managed string to convert. + + + The array of bytes containing the representation of the managed + string in the UTF-8 encoding or null upon failure. + + + + + Converts the specified array of bytes representing a string in the + UTF-8 encoding and returns a managed string. + + + The array of bytes to convert. + + + The managed string or null upon failure. + + + + + Probes a native pointer to a string in the UTF-8 encoding for its + terminating NUL character, within the specified length limit. + + + The native NUL-terminated string pointer. + + + The maximum length of the native string, in bytes. + + + The length of the native string, in bytes -OR- zero if the length + could not be determined. + + + + + Converts the specified native NUL-terminated UTF-8 string pointer + into a managed string. + + + The native NUL-terminated UTF-8 string pointer. + + + The managed string or null upon failure. + + + + + Converts the specified native UTF-8 string pointer of the specified + length into a managed string. + + + The native UTF-8 string pointer. + + + The length of the native string, in bytes. + + + The managed string or null upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts the specified managed string into a native NUL-terminated + UTF-8 string pointer using memory obtained from the SQLite core + library. + + + The managed string to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The length of the native string, in bytes. + + + The native NUL-terminated UTF-8 string pointer or + upon failure. + + + + + Converts a logical array of native NUL-terminated UTF-8 string + pointers into an array of managed strings. + + + The number of elements in the logical array of native + NUL-terminated UTF-8 string pointers. + + + The native pointer to the logical array of native NUL-terminated + UTF-8 string pointers to convert. + + + The array of managed strings or null upon failure. + + + + + Converts an array of managed strings into an array of native + NUL-terminated UTF-8 string pointers. + + + The array of managed strings to convert. + + + Non-zero to obtain memory from the SQLite core library without + adjusting the number of allocated bytes currently being tracked + by the class. + + + The array of native NUL-terminated UTF-8 string pointers or null + upon failure. + + + + + This class contains static methods that are used to deal with native + pointers to memory blocks that logically contain arrays of bytes to be + used with the SQLite core library. + + + + + Converts a native pointer to a logical array of bytes of the + specified length into a managed byte array. + + + The native pointer to the logical array of bytes to convert. + + + The length, in bytes, of the logical array of bytes to convert. + + + The managed byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The native pointer to a logical byte array or null upon failure. + + + + + Converts a managed byte array into a native pointer to a logical + array of bytes. + + + The managed byte array to convert. + + + The length, in bytes, of the converted logical array of bytes. + + + The native pointer to a logical byte array or null upon failure. + + + + + This class contains static methods that are used to perform several + low-level data marshalling tasks between native and managed code. + + + + + Returns a new object instance based on the + specified object instance and an integer + offset. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location that the new + object instance should point to. + + + The new object instance. + + + + + Rounds up an integer size to the next multiple of the alignment. + + + The size, in bytes, to be rounded up. + + + The required alignment for the return value. + + + The size, in bytes, rounded up to the next multiple of the + alignment. This value may end up being the same as the original + size. + + + + + Determines the offset, in bytes, of the next structure member. + + + The offset, in bytes, of the current structure member. + + + The size, in bytes, of the current structure member. + + + The alignment, in bytes, of the next structure member. + + + The offset, in bytes, of the next structure member. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Reads a value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + to be read is located. + + + The value at the specified memory location. + + + + + Reads an value from the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be read is located. + + + The value at the specified memory location. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes an value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Writes a value to the specified memory + location. + + + The object instance representing the base + memory location. + + + The integer offset from the base memory location where the + value to be written is located. + + + The value to write. + + + + + Generates a hash code value for the object. + + + The object instance used to calculate the hash code. + + + Non-zero if different object instances with the same value should + generate different hash codes, where applicable. This parameter + has no effect on the .NET Compact Framework. + + + The hash code value -OR- zero if the object is null. + + + + + This class represents a managed virtual table module implementation. + It is not sealed and must be used as the base class for any + user-defined virtual table module classes implemented in managed code. + + + + + This class implements the + interface by forwarding those method calls to the + object instance it contains. If the + contained object instance is null, all + the methods simply generate an + error. + + + + + This is the value that is always used for the "logErrors" + parameter to the various static error handling methods provided + by the class. + + + + + This is the value that is always used for the "logExceptions" + parameter to the various static error handling methods provided + by the class. + + + + + This is the error message text used when the contained + object instance is not available + for any reason. + + + + + The object instance used to provide + an implementation of the + interface. + + + + + Constructs an instance of this class. + + + The object instance used to provide + an implementation of the + interface. + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab derived structure. + + + The value of . + + + + + Sets the table error message to one that indicates the native + module implementation is not available. + + + The native pointer to the sqlite3_vtab_cursor derived + structure. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + The default version of the native sqlite3_module structure in use. + + + + + This field is used to store the native sqlite3_module structure + associated with this object instance. + + + + + This field is used to store the destructor delegate to be passed to + the SQLite core library via the sqlite3_create_disposable_module() + function. + + + + + This field is used to store a pointer to the native sqlite3_module + structure returned by the sqlite3_create_disposable_module + function. + + + + + This field is used to store the virtual table instances associated + with this module. The native pointer to the sqlite3_vtab derived + structure is used to key into this collection. + + + + + This field is used to store the virtual table cursor instances + associated with this module. The native pointer to the + sqlite3_vtab_cursor derived structure is used to key into this + collection. + + + + + This field is used to store the virtual table function instances + associated with this module. The case-insensitive function name + and the number of arguments (with -1 meaning "any") are used to + construct the string that is used to key into this collection. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Calls the native SQLite core library in order to create a new + disposable module containing the implementation of a virtual table. + + + The native database connection pointer to use. + + + Non-zero upon success. + + + + + This method is called by the SQLite core library when the native + module associated with this object instance is being destroyed due + to its parent connection being closed. It may also be called by + the "vtshim" module if/when the sqlite3_dispose_module() function + is called. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + + + Creates and returns the native sqlite_module structure using the + configured (or default) + interface implementation. + + + The native sqlite_module structure using the configured (or + default) interface + implementation. + + + + + Creates and returns the native sqlite_module structure using the + specified interface + implementation. + + + The interface implementation to + use. + + + The native sqlite_module structure using the specified + interface implementation. + + + + + Creates a copy of the specified + object instance, + using default implementations for the contained delegates when + necessary. + + + The object + instance to copy. + + + The new object + instance. + + + + + Calls one of the virtual table initialization methods. + + + Non-zero to call the + method; otherwise, the + method will be called. + + + The native database connection handle. + + + The original native pointer value that was provided to the + sqlite3_create_module(), sqlite3_create_module_v2() or + sqlite3_create_disposable_module() functions. + + + The number of arguments from the CREATE VIRTUAL TABLE statement. + + + The array of string arguments from the CREATE VIRTUAL TABLE + statement. + + + Upon success, this parameter must be modified to point to the newly + created native sqlite3_vtab derived structure. + + + Upon failure, this parameter must be modified to point to the error + message, with the underlying memory having been obtained from the + sqlite3_malloc() function. + + + A standard SQLite return code. + + + + + Calls one of the virtual table finalization methods. + + + Non-zero to call the + method; otherwise, the + method will be + called. + + + The native pointer to the sqlite3_vtab derived structure. + + + A standard SQLite return code. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + used to get the native pointer to the sqlite3_vtab derived + structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance to be used. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + Non-zero if this error message should also be logged using the + class. + + + Non-zero if caught exceptions should be logged using the + class. + + + The error message. + + + Non-zero upon success. + + + + + Gets and returns the interface + implementation to be used when creating the native sqlite3_module + structure. Derived classes may override this method to supply an + alternate implementation for the + interface. + + + The interface implementation to + be used when populating the native sqlite3_module structure. If + the returned value is null, the private methods provided by the + class and relating to the + interface will be used to + create the necessary delegates. + + + + + Creates and returns the + interface implementation corresponding to the current + object instance. + + + The interface implementation + corresponding to the current object + instance. + + + + + Allocates a native sqlite3_vtab derived structure and returns a + native pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Zeros out the fields of a native sqlite3_vtab derived structure. + + + The native pointer to the native sqlite3_vtab derived structure to + zero. + + + + + Frees a native sqlite3_vtab structure using the provided native + pointer to it. + + + A native pointer to a native sqlite3_vtab derived structure. + + + + + Allocates a native sqlite3_vtab_cursor derived structure and + returns a native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Frees a native sqlite3_vtab_cursor structure using the provided + native pointer to it. + + + A native pointer to a native sqlite3_vtab_cursor derived structure. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The object instance to be used. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Reads and returns the native pointer to the sqlite3_vtab derived + structure based on the native pointer to the sqlite3_vtab_cursor + derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure + from which to read the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure -OR- + if it cannot be determined. + + + + + Looks up and returns the object + instance based on the native pointer to the sqlite3_vtab derived + structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The object instance or null if + the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab derived + structure and creates an association between it and the specified + object instance. + + + The object instance to be used + when creating the association. + + + The native pointer to a sqlite3_vtab derived structure or + if the method fails for any reason. + + + + + Looks up and returns the + object instance based on the native pointer to the + sqlite3_vtab_cursor derived structure. + + + The native pointer to the sqlite3_vtab derived structure. + + + The native pointer to the sqlite3_vtab_cursor derived structure. + + + The object instance or null + if the corresponding one cannot be found. + + + + + Allocates and returns a native pointer to a sqlite3_vtab_cursor + derived structure and creates an association between it and the + specified object instance. + + + The object instance to be + used when creating the association. + + + The native pointer to a sqlite3_vtab_cursor derived structure or + if the method fails for any reason. + + + + + Deterimines the key that should be used to identify and store the + object instance for the virtual table + (i.e. to be returned via the + method). + + + The number of arguments to the virtual table function. + + + The name of the virtual table function. + + + The object instance associated with + this virtual table function. + + + The string that should be used to identify and store the virtual + table function instance. This method cannot return null. If null + is returned from this method, the behavior is undefined. + + + + + Attempts to declare the schema for the virtual table using the + specified database connection. + + + The object instance to use when + declaring the schema of the virtual table. This parameter may not + be null. + + + The string containing the CREATE TABLE statement that completely + describes the schema for the virtual table. This parameter may not + be null. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + Calls the native SQLite core library in order to declare a virtual + table function in response to a call into the + + or virtual table + methods. + + + The object instance to use when + declaring the schema of the virtual table. + + + The number of arguments to the function being declared. + + + The name of the function being declared. + + + Upon success, the contents of this parameter are undefined. Upon + failure, it should contain an appropriate error message. + + + A standard SQLite return code. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + the method, + the method, + the method, + and the method should be logged using the + class. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Arranges for the specified error message to be placed into the + zErrMsg field of a sqlite3_vtab derived structure, freeing the + existing error message, if any. + + + The object instance used to + lookup the native pointer to the sqlite3_vtab derived structure. + + + The error message. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated cost. + + + The object instance to modify. + + + The estimated cost value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated cost. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified estimated rows. + + + The object instance to modify. + + + The estimated rows value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default estimated rows. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the specified flags. + + + The object instance to modify. + + + The index flags value to use. Using a null value means that the + default value provided by the SQLite core library should be used. + + + Non-zero upon success. + + + + + Modifies the specified object instance + to contain the default index flags. + + + The object instance to modify. + + + Non-zero upon success. + + + + + Returns or sets a boolean value indicating whether virtual table + errors should be logged using the class. + + + + + Returns or sets a boolean value indicating whether exceptions + caught in the + method, + method, and the + method should be logged using the + class. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Returns non-zero if the schema for the virtual table has been + declared. + + + + + Returns the name of the module as it was registered with the SQLite + core library. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated with + the virtual table. + + + The native user-data pointer associated with this module, as it was + provided to the SQLite core library when the native module instance + was created. + + + The module name, database name, virtual table name, and all other + arguments passed to the CREATE VIRTUAL TABLE statement. + + + Upon success, this parameter must be modified to contain the + object instance associated with + the virtual table. + + + Upon failure, this parameter must be modified to contain an error + message. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The object instance containing all the + data for the inputs and outputs relating to index selection. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + Upon success, this parameter must be modified to contain the + object instance associated + with the newly opened virtual table cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Number used to help identify the selected index. + + + String used to help identify the selected index. + + + The values corresponding to each column in the selected index. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Non-zero if no more rows are available; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to be used for + returning the specified column value to the SQLite core library. + + + The zero-based index corresponding to the column containing the + value to be returned. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the current row for the specified cursor. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The array of object instances containing + the new or modified column values, if any. + + + Upon success, this parameter must be modified to contain the unique + integer row identifier for the row that was inserted, if any. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The number of arguments to the function being sought. + + + The name of the function being sought. + + + Upon success, this parameter must be modified to contain the + object instance responsible for + implementing the specified function. + + + Upon success, this parameter must be modified to contain the + native user-data pointer associated with + . + + + Non-zero if the specified function was found; zero otherwise. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + The new name for the virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier under which the the current state of + the virtual table should be saved. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer used to indicate that any saved states with an + identifier greater than or equal to this should be deleted by the + virtual table. + + + A standard SQLite return code. + + + + + This method is called in response to the + method. + + + The object instance associated + with this virtual table. + + + This is an integer identifier used to specify a specific saved + state for the virtual table for it to restore itself back to, which + should also have the effect of deleting all saved states with an + integer identifier greater than this one. + + + A standard SQLite return code. + + + + + Disposes of this object instance. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is being + called from the finalizer. + + + + + Finalizes this object instance. + + + + + This class contains some virtual methods that may be useful for other + virtual table classes. It specifically does NOT implement any of the + interface methods. + + + + + The CREATE TABLE statement used to declare the schema for the + virtual table. + + + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This has no + effect on the .NET Compact Framework. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Determines the SQL statement used to declare the virtual table. + This method should be overridden in derived classes if they require + a custom virtual table schema. + + + The SQL statement used to declare the virtual table -OR- null if it + cannot be determined. + + + + + Sets the table error message to one that indicates the virtual + table cursor is of the wrong type. + + + The object instance. + + + The that the virtual table cursor should be. + + + The value of . + + + + + Determines the string to return as the column value for the object + instance value. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a string representation for. + + + The string representation of the specified object instance or null + upon failure. + + + + + Constructs an unique row identifier from two + values. The first value + must contain the row sequence number for the current row and the + second value must contain the hash code of the key column value + for the current row. + + + The integer row sequence number for the current row. + + + The hash code of the key column value for the current row. + + + The unique row identifier or zero upon failure. + + + + + Determines the unique row identifier for the current row. + + + The object instance + associated with the previously opened virtual table cursor to be + used. + + + The object instance to return a unique row identifier for. + + + The unique row identifier or zero upon failure. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this cursor + was created. + + + + + This value will be non-zero if false has been returned from the + method. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Advances to the next row of the virtual table cursor using the + method of the + object instance. + + + Non-zero if the current row is valid; zero otherwise. If zero is + returned, no further rows are available. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Resets the virtual table cursor position, also invalidating the + current row, using the method of + the object instance. + + + + + Returns non-zero if the end of the virtual table cursor has been + seen (i.e. no more rows are available, including the current one). + + + + + Returns non-zero if the virtual table cursor is open. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if the virtual + table cursor has been closed. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. The following short + example shows it being used to treat an array of strings as a table + data source: + + public static class Sample + { + public static void Main() + { + using (SQLiteConnection connection = new SQLiteConnection( + "Data Source=:memory:;")) + { + connection.Open(); + + connection.CreateModule(new SQLiteModuleEnumerable( + "sampleModule", new string[] { "one", "two", "three" })); + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = + "CREATE VIRTUAL TABLE t1 USING sampleModule;"; + + command.ExecuteNonQuery(); + } + + using (SQLiteCommand command = connection.CreateCommand()) + { + command.CommandText = "SELECT * FROM t1;"; + + using (SQLiteDataReader dataReader = command.ExecuteReader()) + { + while (dataReader.Read()) + Console.WriteLine(dataReader[0].ToString()); + } + } + + connection.Close(); + } + } + } + + + + + + The instance containing the backing data + for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + Non-zero if different object instances with the same value should + generate different row identifiers, where applicable. This + parameter has no effect on the .NET Compact Framework. + + + + + Sets the table error message to one that indicates the virtual + table cursor has no current row. + + + The object instance. + + + The value of . + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class represents a virtual table cursor to be used with the + class. It is not sealed and may + be used as the base class for any user-defined virtual table cursor + class that wraps an object instance. + + + + + The instance provided when this + cursor was created. + + + + + Constructs an instance of this class. + + + The object instance associated + with this object instance. + + + The instance to expose as a virtual + table cursor. + + + + + Returns the value for the current row of the virtual table cursor + using the property of the + object instance. + + + + + Closes the virtual table cursor. This method must not throw any + exceptions. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that exposes an + object instance as a read-only virtual + table. It is not sealed and may be used as the base class for any + user-defined virtual table class that wraps an + object instance. + + + + + The instance containing the backing + data for the virtual table. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + The instance to expose as a virtual + table. This parameter cannot be null. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This class implements a virtual table module that does nothing by + providing "empty" implementations for all of the + interface methods. The result + codes returned by these "empty" method implementations may be + controlled on a per-method basis by using and/or overriding the + , + , + , + , and + methods from within derived classes. + + + + + This field is used to store the + values to return, on a per-method basis, for all methods that are + part of the interface. + + + + + Constructs an instance of this class. + + + The name of the module. This parameter cannot be null. + + + + + Determines the default value to be + returned by methods of the + interface that lack an overridden implementation in all classes + derived from the class. + + + The value that should be returned + by all interface methods unless + a more specific result code has been set for that interface method. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Converts a value into a boolean + return value for use with the + method. + + + The value to convert. + + + The value. + + + + + Determines the value that should be + returned by the specified + interface method if it lack an overridden implementation. If no + specific value is available (or set) + for the specified method, the value + returned by the method will be + returned instead. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + + + Sets the value that should be + returned by the specified + interface method if it lack an overridden implementation. + + + The name of the method. Currently, this method must be part of + the interface. + + + The value that should be returned + by the interface method. + + + Non-zero upon success. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + See the method. + + + See the method. + + + See the method. + + + See the method. + + + + + Throws an if this object + instance has been disposed. + + + + + Disposes of this object instance. + + + Non-zero if this method is being called from the + method. Zero if this method is + being called from the finalizer. + + + + + This enumerated type represents a type of conflict seen when apply + changes from a change set or patch set. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is present in the + database, but one or more other (non primary-key) fields modified + by the update do not contain the expected "before" values. + + + + + This value is seen when processing a DELETE or UPDATE change if a + row with the required PRIMARY KEY fields is not present in the + database. There is no conflicting row in this case. + + The results of invoking the + + method are undefined. + + + + + This value is seen when processing an INSERT change if the + operation would result in duplicate primary key values. + The conflicting row in this case is the database row with the + matching primary key. + + + + + If a non-foreign key constraint violation occurs while applying a + change (i.e. a UNIQUE, CHECK or NOT NULL constraint), the conflict + callback will see this value. + + There is no conflicting row in this case. The results of invoking + the + method are undefined. + + + + + If foreign key handling is enabled, and applying a changes leaves + the database in a state containing foreign key violations, this + value will be seen exactly once before the changes are committed. + If the conflict handler + , the changes, + including those that caused the foreign key constraint violation, + are committed. Or, if it returns + , the changes are + rolled back. + + No current or conflicting row information is provided. The only + method it is possible to call on the supplied + object is + . + + + + + This enumerated type represents the result of a user-defined conflict + resolution callback. + + + + + If a conflict callback returns this value no special action is + taken. The change that caused the conflict is not applied. The + application of changes continues with the next change. + + + + + This value may only be returned from a conflict callback if the + type of conflict was + or . If this is + not the case, any changes applied so far are rolled back and the + call to + + will raise a with an error code of + . + + If this value is returned for a + conflict, then the + conflicting row is either updated or deleted, depending on the type + of change. + + If this value is returned for a + conflict, then + the conflicting row is removed from the database and a second + attempt to apply the change is made. If this second attempt fails, + the original row is restored to the database before continuing. + + + + + If this value is returned, any changes applied so far are rolled + back and the call to + + will raise a with an error code of + . + + + + + This enumerated type represents possible flags that may be passed + to the appropriate overloads of various change set creation methods. + + + + + No special handling. + + + + + Invert the change set while iterating through it. + This is equivalent to inverting a change set using + before + applying it. It is an error to specify this flag + with a patch set. + + + + + This callback is invoked when a determination must be made about + whether changes to a specific table should be tracked -OR- applied. + It will not be called for tables that are already attached to a + . + + + The optional application-defined context data that was originally + passed to the or + + methods. This value may be null. + + + The name of the table. + + + Non-zero if changes to the table should be considered; otherwise, + zero. Throwing an exception from this callback will result in + undefined behavior. + + + + + This callback is invoked when there is a conflict while apply changes + to a database. + + + The optional application-defined context data that was originally + passed to the + + method. This value may be null. + + + The type of this conflict. + + + The object associated with + this conflict. This value may not be null; however, only properties + that are applicable to the conflict type will be available. Further + information on this is available within the descriptions of the + available values. + + + A value that indicates the + action to be taken in order to resolve the conflict. Throwing an + exception from this callback will result in undefined behavior. + + + + + This interface contains methods used to manipulate a set of changes for + a database. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes -OR- null if it is not available. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + This interface contains methods used to manipulate multiple sets of + changes for a database. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + This interface contains properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The name of the table the change was made to. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + This interface contains methods to query and manipulate the state of a + change tracking session for a database. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + Number of bytes used by the session -OR- negative one if its value + cannot be obtained. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this session instance as a + patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + This class contains some static helper methods for use within this + subsystem. + + + + + This method checks the byte array specified by the caller to make + sure it will be usable. + + + A byte array provided by the caller into one of the public methods + for the classes that belong to this subsystem. This value cannot + be null or represent an empty array; otherwise, an appropriate + exception will be thrown. + + + + + This class is used to hold the native connection handle associated with + a open until this subsystem is totally + done with it. This class is for internal use by this subsystem only. + + + + + The SQL statement used when creating the native statement handle. + There are no special requirements for this other than counting as + an "open statement handle". + + + + + The format of the error message used when reporting, during object + disposal, that the statement handle is still open (i.e. because + this situation is considered a fairly serious programming error). + + + + + The wrapped native connection handle associated with this lock. + + + + + The flags associated with the connection represented by the + value. + + + + + The native statement handle for this lock. The garbage collector + cannot cause this statement to be finalized; therefore, it will + serve to hold the associated native connection open until it is + freed manually using the method. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + lock. + + + The flags associated with the connection represented by the + value. + + + Non-zero if the method should be called prior + to returning from this constructor. + + + + + Queries and returns the wrapped native connection handle for this + instance. + + + The wrapped native connection handle for this instance -OR- null + if it is unavailable. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Queries and returns the native connection handle for this instance. + + + The native connection handle for this instance. If this value is + unavailable or invalid an exception will be thrown. + + + + + This method attempts to "lock" the associated native connection + handle by preparing a SQL statement that will not be finalized + until the method is called (i.e. and which + cannot be done by the garbage collector). If the statement is + already prepared, nothing is done. If the statement cannot be + prepared for any reason, an exception will be thrown. + + + + + This method attempts to "unlock" the associated native connection + handle by finalizing the previously prepared statement. If the + statement is already finalized, nothing is done. If the statement + cannot be finalized for any reason, an exception will be thrown. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator. It is used as the + base class for the and + classes. It knows how to + advance the native iterator handle as well as finalize it. + + + + + The native change set (a.k.a. iterator) handle. + + + + + Non-zero if this instance owns the native iterator handle in the + field. In that case, this instance will + finalize the native iterator handle upon being disposed or + finalized. + + + + + Constructs a new instance of this class using the specified native + iterator handle. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Throws an exception if the native iterator handle is invalid. + + + + + Used to query the native iterator handle. This method is only used + by the class. + + + The native iterator handle -OR- if it + is not available. + + + + + Attempts to advance the native iterator handle to its next item. + + + Non-zero if the native iterator handle was advanced and contains + more data; otherwise, zero. If the underlying native API returns + an unexpected value then an exception will be thrown. + + + + + Attempts to create an instance of this class that is associated + with the specified native iterator handle. Ownership of the + native iterator handle is NOT transferred to the new instance of + this class. + + + The native iterator handle to use. + + + The new instance of this class. No return value is reserved to + indicate an error; however, if the native iterator handle is not + valid, any subsequent attempt to make use of it via the returned + instance of this class may throw exceptions. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages the native change set iterator for a set of changes + contained entirely in memory. + + + + + The native memory buffer allocated to contain the set of changes + associated with this instance. This will always be freed when this + instance is disposed or finalized. + + + + + Constructs an instance of this class using the specified native + memory buffer and native iterator handle. + + + The native memory buffer to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + raw byte data. + + + The raw byte data containing the set of changes for this native + iterator. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class manages the native change set iterator for a set of changes + backed by a instance. + + + + + The instance that is managing + the underlying used as the backing store for + the set of changes associated with this native change set iterator. + + + + + Constructs an instance of this class using the specified native + iterator handle and . + + + The instance to use. + + + The native iterator handle to use. + + + Non-zero if this instance is to take ownership of the native + iterator handle specified by . + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Attempts to create an instance of this class using the specified + . + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + The new instance of this class -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class is used to act as a bridge between a + instance and the delegates used with the native streaming API. + + + + + The managed stream instance used to in order to service the native + delegates for both input and output. + + + + + The flags associated with the connection. + + + + + The delegate used to provide input to the native streaming API. + It will be null -OR- point to the method. + + + + + The delegate used to provide output to the native streaming API. + It will be null -OR- point to the method. + + + + + Constructs a new instance of this class using the specified managed + stream and connection flags. + + + The managed stream instance to be used in order to service the + native delegates for both input and output. + + + The flags associated with the parent connection. + + + + + Queries and returns the flags associated with the connection for + this instance. + + + The value. There is no return + value reserved to indicate an error. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + Returns a delegate that wraps the method, + creating it first if necessary. + + + A delegate that refers to the method. + + + + + This method attempts to read bytes from + the managed stream, writing them to the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer to receive the requested input bytes. + It must be at least bytes in size. + + + Upon entry, the number of bytes to read. Upon exit, the number of + bytes actually read. This value may be zero upon exit. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + This method attempts to write bytes to + the managed stream, reading them from the + buffer. + + + Optional extra context information. Currently, this will always + have a value of . + + + A preallocated native buffer containing the requested output + bytes. It must be at least bytes in + size. + + + The number of bytes to write. + + + The value upon success -OR- an + appropriate error code upon failure. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class manages a collection of + instances. When used, it takes responsibility for creating, returning, + and disposing of its instances. + + + + + The managed collection of + instances, keyed by their associated + instance. + + + + + The flags associated with the connection. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Makes sure the collection of + is created. + + + + + Makes sure the collection of + is disposed. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents a group of change sets (or patch sets). + + + + + The instance associated + with this change group. + + + + + The flags associated with the connection. + + + + + The native handle for this change group. This will be deleted when + this instance is disposed or finalized. + + + + + Constructs a new instance of this class using the specified + connection flags. + + + The flags associated with the parent connection. + + + + + Throws an exception if the native change group handle is invalid. + + + + + Makes sure the native change group handle is valid, creating it if + necessary. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data must be contained entirely within + the byte array. + + + The raw byte data for the specified change set (or patch set). + + + + + Attempts to add a change set (or patch set) to this change group + instance. The underlying data will be read from the specified + . + + + The instance containing the raw change set + (or patch set) data to read. + + + + + Attempts to create and return, via , the + combined set of changes represented by this change group instance. + + + Upon success, this will contain the raw byte data for all the + changes in this change group instance. + + + + + Attempts to create and write, via , the + combined set of changes represented by this change group instance. + + + Upon success, the raw byte data for all the changes in this change + group instance will be written to this . + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents the change tracking session associated with a + database. + + + + + The instance associated + with this session. + + + + + The name of the database (e.g. "main") for this session. + + + + + The native handle for this session. This will be deleted when + this instance is disposed or finalized. + + + + + The delegate used to provide table filtering to the native API. + It will be null -OR- point to the method. + + + + + The managed callback used to filter tables for this session. Set + via the method. + + + + + The optional application-defined context data that was passed to + the method. This value may be null. + + + + + Constructs a new instance of this class using the specified wrapped + native connection handle and associated flags. + + + The wrapped native connection handle to be associated with this + session. + + + The flags associated with the connection represented by the + value. + + + The name of the database (e.g. "main") for this session. + + + + + Throws an exception if the native session handle is invalid. + + + + + Makes sure the native session handle is valid, creating it if + necessary. + + + + + This method sets up the internal table filtering associated state + of this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + The native + delegate -OR- null to clear any existing table filter. + + + + + Makes sure the instance + is available, creating it if necessary. + + + + + Attempts to return a instance + suitable for the specified . + + + The instance. If this value is null, a null + value will be returned. + + + A instance. Typically, these + are always freshly created; however, this method is designed to + return the existing instance + associated with the specified stream, should one exist. + + + + + This method is called when determining if a table needs to be + included in the tracked changes for the associated database. + + + Optional extra context information. Currently, this will always + have a value of . + + + The native pointer to the name of the table. + + + Non-zero if changes to the specified table should be considered; + otherwise, zero. + + + + + Determines if this session is currently tracking changes to its + associated database. + + + Non-zero if changes to the associated database are being trakced; + otherwise, zero. + + + + + Enables tracking of changes to the associated database. + + + + + Disables tracking of changes to the associated database. + + + + + Determines if this session is currently set to mark changes as + indirect (i.e. as though they were made via a trigger or foreign + key action). + + + Non-zero if changes to the associated database are being marked as + indirect; otherwise, zero. + + + + + Sets the indirect flag for this session. Subsequent changes will + be marked as indirect until this flag is changed again. + + + + + Clears the indirect flag for this session. Subsequent changes will + be marked as direct until this flag is changed again. + + + + + Determines if there are any tracked changes currently within the + data for this session. + + + Non-zero if there are no changes within the data for this session; + otherwise, zero. + + + + + This method attempts to determine the amount of memory used by the + session. + + + The number of bytes used by the session. + + + + + Upon success, causes changes to the specified table(s) to start + being tracked. Any tables impacted by calls to this method will + not cause the callback + to be invoked. + + + The name of the table to be tracked -OR- null to track all + applicable tables within this database. + + + + + This method is used to set the table filter for this instance. + + + The table filter callback -OR- null to clear any existing table + filter callback. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to create and return, via , the + set of changes represented by this session instance. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + Attempts to create and return, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, this will contain the raw byte data for all the + changes in this session instance. + + + + + Attempts to create and write, via , the + set of changes represented by this session instance as a patch set. + + + Upon success, the raw byte data for all the changes in this session + instance will be written to this . + + + + + This method loads the differences between two tables [with the same + name, set of columns, and primary key definition] into this session + instance. + + + The name of the database containing the table with the original + data (i.e. it will need updating in order to be identical to the + one within the database associated with this session instance). + + + The name of the table. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents the abstract concept of a set of changes. It + acts as the base class for the + and classes. It derives from + the class, which is used to hold + the underlying native connection handle open until the instances of + this class are disposed or finalized. It also provides the ability + to construct wrapped native delegates of the + and + types. + + + + + Constructs an instance of this class using the specified wrapped + native connection handle. + + + The wrapped native connection handle to be associated with this + change set. + + + The flags associated with the connection represented by the + value. + + + + + Creates and returns a concrete implementation of the + interface. + + + The native iterator handle to use. + + + An instance of the + interface, which can be used to fetch metadata associated with + the current item in this set of changes. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Attempts to create a + native delegate + that invokes the specified + delegate. + + + The to invoke when the + native delegate + is called. If this value is null then null is returned. + + + The optional application-defined context data. This value may be + null. + + + The created + native delegate -OR- null if it cannot be created. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified raw byte + data and wrapped native connection handle. + + + The raw byte data for the specified change set (or patch set). + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + The new instance that represents + the resulting set of changes. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + The new instance that represents + the resulting set of changes. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents a set of changes that are backed by a + instance. + + + + + The instance that is managing + the underlying input used as the backing + store for the set of changes associated with this instance. + + + + + The instance that is managing + the underlying output used as the backing + store for the set of changes generated by the + or methods. + + + + + The instance used as the backing store for + the set of changes associated with this instance. + + + + + The instance used as the backing store for + the set of changes generated by the or + methods. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + + + Constructs an instance of this class using the specified streams + and wrapped native connection handle. + + + The where the raw byte data for the set of + changes may be read. + + + The where the raw byte data for resulting + sets of changes may be written. + + + The wrapped native connection handle to be associated with this + set of changes. + + + The flags associated with the connection represented by the + value. + + + The flags used to create the change set iterator. + + + + + Throws an exception if the input stream or its associated stream + adapter are invalid. + + + + + Throws an exception if the output stream or its associated stream + adapter are invalid. + + + + + This method "inverts" the set of changes within this instance. + Applying an inverted set of changes to a database reverses the + effects of applying the uninverted changes. Specifically: + ]]>]]> + Each DELETE change is changed to an INSERT, and + ]]>]]> + Each INSERT change is changed to a DELETE, and + ]]>]]> + For each UPDATE change, the old.* and new.* values are exchanged. + ]]>]]> + This method does not change the order in which changes appear + within the set of changes. It merely reverses the sense of each + individual change. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + This method combines the specified set of changes with the ones + contained in this instance. + + + The changes to be combined with those in this instance. + + + Since the resulting set of changes is written to the output stream, + this method always returns null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional application-defined context data. This value may be + null. + + + + + Attempts to apply the set of changes in this instance to the + associated database. + + + The delegate that will need + to handle any conflicting changes that may arise. + + + The optional delegate + that can be used to filter the list of tables impacted by the set + of changes. + + + The optional application-defined context data. This value may be + null. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new + instance. + + + + + Creates an capable of iterating over the + items within this set of changes. + + + The new instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes. It serves as the base class for the + and + classes. It manages and + owns an instance of the class. + + + + + This managed change set iterator is managed and owned by this + class. It will be disposed when this class is disposed. + + + + + Constructs an instance of this class using the specified managed + change set iterator. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Sets the managed iterator instance to a new value. + + + The new managed iterator instance to use. + + + + + Disposes of the managed iterator instance and sets its value to + null. + + + + + Disposes of the existing managed iterator instance and then sets it + to a new value. + + + The new managed iterator instance to use. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Returns the current change within the set of changes, represented + by a instance. + + + + + Attempts to advance to the next item in the set of changes. + + + Non-zero if more items are available; otherwise, zero. + + + + + Throws because not all the + derived classes are able to support reset functionality. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + + + + This class represents an that is capable of + enumerating over a set of changes contained entirely in memory. + + + + + The raw byte data for this set of changes. Since this data must + be marshalled to a native memory buffer before being used, there + must be enough memory available to store at least two times the + amount of data contained within it. + + + + + The flags used to create the change set iterator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + + + Constructs an instance of this class using the specified raw byte + data. + + + The raw byte data containing the set of changes for this + enumerator. + + + The flags used to create the change set iterator. + + + + + Resets the enumerator to its initial position. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This class represents an that is capable of + enumerating over a set of changes backed by a + instance. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + + + Constructs an instance of this class using the specified stream. + + + The where the raw byte data for the set of + changes may be read. + + + The flags associated with the parent connection. + + + The flags used to create the change set iterator. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + This interface implements properties and methods used to fetch metadata + about one change within a set of changes for a database. + + + + + The instance to use. This + will NOT be owned by this class and will not be disposed upon this + class being disposed or finalized. + + + + + Constructs an instance of this class using the specified iterator + instance. + + + The managed iterator instance to use. + + + + + Throws an exception if the managed iterator instance is invalid. + + + + + Populates the underlying data for the , + , , and + properties, using the appropriate native + API. + + + + + Populates the underlying data for the + property using the appropriate + native API. + + + + + Populates the underlying data for the + property using the + appropriate native API. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + The name of the table the change was made to. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + The number of columns impacted by this change. This value can be + used to determine the highest valid column index that may be used + with the , , + and methods of this interface. It + will be this value minus one. + + + + + Backing field for the property. This + value will be null if this field has not yet been populated via the + underlying native API. + + + + + This will contain the value + , + , or + , corresponding to + the overall type of change this item represents. + + + + + Backing field for the property. This value + will be null if this field has not yet been populated via the + underlying native API. + + + + + Non-zero if this change is considered to be indirect (i.e. as + though they were made via a trigger or foreign key action). + + + + + Backing field for the property. + This value will be null if this field has not yet been populated + via the underlying native API. + + + + + This array contains a for each column in + the table associated with this change. The element will be zero + if the column is not part of the primary key; otherwise, it will + be non-zero. + + + + + Backing field for the + property. This value will be null if this field has not yet been + populated via the underlying native API. + + + + + This method may only be called from within a + delegate when the conflict + type is . It + returns the total number of known foreign key violations in the + destination database. + + + + + Queries and returns the original value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The original value of a given column for this change. + + + + + Queries and returns the updated value of a given column for this + change. This method may only be called when the + has a value of + or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The updated value of a given column for this change. + + + + + Queries and returns the conflicting value of a given column for + this change. This method may only be called from within a + delegate when the conflict + type is or + . + + + The index for the column. This value must be between zero and one + less than the total number of columns for this table. + + + The conflicting value of a given column for this change. + + + + + Disposes of this object instance. + + + + + Non-zero if this object instance has been disposed. + + + + + Throws an exception if this object instance has been disposed. + + + + + Disposes or finalizes this object instance. + + + Non-zero if this object is being disposed; otherwise, this object + is being finalized. + + + + + Finalizes this object instance. + + +
+
diff --git a/packages/System.Data.SQLite.Core.1.0.119.0/.signature.p7s b/packages/System.Data.SQLite.Core.1.0.119.0/.signature.p7s new file mode 100644 index 0000000..afbb392 Binary files /dev/null and b/packages/System.Data.SQLite.Core.1.0.119.0/.signature.p7s differ diff --git a/packages/System.Data.SQLite.Core.1.0.119.0/System.Data.SQLite.Core.1.0.119.0.nupkg b/packages/System.Data.SQLite.Core.1.0.119.0/System.Data.SQLite.Core.1.0.119.0.nupkg new file mode 100644 index 0000000..d98553d Binary files /dev/null and b/packages/System.Data.SQLite.Core.1.0.119.0/System.Data.SQLite.Core.1.0.119.0.nupkg differ